Skip to content

Commit

Permalink
Expose queue name and delay on job queue events
Browse files Browse the repository at this point in the history
  • Loading branch information
stayallive committed Jan 25, 2024
1 parent fdef48d commit 6deeaef
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 12 deletions.
20 changes: 19 additions & 1 deletion src/Illuminate/Queue/Events/JobQueued.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,39 @@ class JobQueued
*/
public $payload;

/**
* The queue name the job is queued on.
*
* @var string|null
*/
public $queue;

/**
* The delay used to queue the job.
*
* @var \DateTimeInterface|\DateInterval|int|null
*/
public $delay;

/**
* Create a new event instance.
*
* @param string $connectionName
* @param string|int|null $id
* @param \Closure|string|object $job
* @param string|null $payload
* @param string|null $queue
* @param \DateTimeInterface|\DateInterval|int|null $delay
* @return void
*/
public function __construct($connectionName, $id, $job, $payload = null)
public function __construct($connectionName, $id, $job, $payload = null, $queue = null, $delay = null)
{
$this->connectionName = $connectionName;
$this->id = $id;
$this->job = $job;
$this->payload = $payload;
$this->queue = $queue;
$this->delay = $delay;
}

/**
Expand Down
20 changes: 19 additions & 1 deletion src/Illuminate/Queue/Events/JobQueueing.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,37 @@ class JobQueueing
*/
public $payload;

/**
* The queue name the job is queued on.
*
* @var string|null
*/
public $queue;

/**
* The delay used to queue the job.
*
* @var \DateTimeInterface|\DateInterval|int|null
*/
public $delay;

/**
* Create a new event instance.
*
* @param string $connectionName
* @param \Closure|string|object $job
* @param string|null $payload
* @param string|null $queue
* @param \DateTimeInterface|\DateInterval|int|null $delay
* @return void
*/
public function __construct($connectionName, $job, $payload = null)
public function __construct($connectionName, $job, $payload = null, $queue = null, $delay = null)
{
$this->connectionName = $connectionName;
$this->job = $job;
$this->payload = $payload;
$this->queue = $queue;
$this->delay = $delay;
}

/**
Expand Down
24 changes: 14 additions & 10 deletions src/Illuminate/Queue/Queue.php
Original file line number Diff line number Diff line change
Expand Up @@ -328,19 +328,19 @@ protected function enqueueUsing($job, $payload, $queue, $delay, $callback)
$this->container->bound('db.transactions')) {
return $this->container->make('db.transactions')->addCallback(
function () use ($payload, $queue, $delay, $callback, $job) {
$this->raiseJobQueueingEvent($job, $payload);
$this->raiseJobQueueingEvent($job, $payload, $queue, $delay);

return tap($callback($payload, $queue, $delay), function ($jobId) use ($job, $payload) {
$this->raiseJobQueuedEvent($jobId, $job, $payload);
return tap($callback($payload, $queue, $delay), function ($jobId) use ($job, $payload, $queue, $delay) {
$this->raiseJobQueuedEvent($jobId, $job, $payload, $queue, $delay);
});
}
);
}

$this->raiseJobQueueingEvent($job, $payload);
$this->raiseJobQueueingEvent($job, $payload, $queue, $delay);

return tap($callback($payload, $queue, $delay), function ($jobId) use ($job, $payload) {
$this->raiseJobQueuedEvent($jobId, $job, $payload);
return tap($callback($payload, $queue, $delay), function ($jobId) use ($job, $payload, $queue, $delay) {
$this->raiseJobQueuedEvent($jobId, $job, $payload, $queue, $delay);
});
}

Expand Down Expand Up @@ -372,12 +372,14 @@ protected function shouldDispatchAfterCommit($job)
*
* @param \Closure|string|object $job
* @param string $payload
* @param string $queue
* @param \DateTimeInterface|\DateInterval|int|null $delay
* @return void
*/
protected function raiseJobQueueingEvent($job, $payload)
protected function raiseJobQueueingEvent($job, $payload, $queue, $delay)
{
if ($this->container->bound('events')) {
$this->container['events']->dispatch(new JobQueueing($this->connectionName, $job, $payload));
$this->container['events']->dispatch(new JobQueueing($this->connectionName, $job, $payload, $queue, $delay));
}
}

Expand All @@ -387,12 +389,14 @@ protected function raiseJobQueueingEvent($job, $payload)
* @param string|int|null $jobId
* @param \Closure|string|object $job
* @param string $payload
* @param string $queue
* @param \DateTimeInterface|\DateInterval|int|null $delay
* @return void
*/
protected function raiseJobQueuedEvent($jobId, $job, $payload)
protected function raiseJobQueuedEvent($jobId, $job, $payload, $queue, $delay)
{
if ($this->container->bound('events')) {
$this->container['events']->dispatch(new JobQueued($this->connectionName, $jobId, $job, $payload));
$this->container['events']->dispatch(new JobQueued($this->connectionName, $jobId, $job, $payload, $queue, $delay));
}
}

Expand Down

0 comments on commit 6deeaef

Please sign in to comment.