UniqueFor

Unique job duration

Description: Ensures only one instance of the job is queued at a time for the given duration (in seconds).

Namespace: Illuminate\Queue\Attributes\UniqueFor

Added in: Laravel 13.0

Usage

use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\UniqueFor;

// Before:
public $uniqueFor = 3600;

use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\UniqueFor;

// After:
#[UniqueFor(3600)]
class ProcessPodcast implements ShouldQueue, ShouldBeUnique
{
    public function handle(): void
    {
        // Only one instance can be queued per hour
    }
}