Skip to content

Commit 9c55cb9

Browse files
committed
Add queue delay parameter
Add configuration parameter for setting how long a job should be delayed before returning to ready queue
1 parent 504553f commit 9c55cb9

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ queue[QueueName] = [queueName] # Required. The name of the queue that shou
8282
[QueueName]Tries = [value] # Optional. The number of times the worker should attempt to run in the event an unexpected exit code occurs. Defaults to 5
8383
[QueueName]Sleep = [value] # Optional. The number of seconds the worker should sleep if no new jobs are in the queue. Defaults to 5
8484
[QueueName]StartSecs = [value] # Optional. How long a job should run for to be considered successful. Defaults to 1
85+
[QueueName]Email = [value] # Optional. Time in seconds a job should be delayed before returning to the ready queue. Defaults to 0
8586
```
8687

8788
Add one `queue[QueueName] = [queueName]` entry in your EB environmental variables for each queue you want to run. The rest of the parameters are optional.

src/.ebextensions/parseConfig.php

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?php
22

3-
function generateProgram($connection, $queue, $tries, $sleep, $numProcs, $startSecs)
3+
function generateProgram($connection, $queue, $tries, $sleep, $numProcs, $delay, $startSecs)
44
{
55
$program = <<<EOT
66
77
[program:$queue]
8-
command=sudo php artisan doctrine:queue:work $connection --queue=$queue --tries=$tries --sleep=$sleep --daemon
8+
command=sudo php artisan doctrine:queue:work $connection --queue=$queue --tries=$tries --sleep=$sleep --delay=$delay --daemon
99
directory=/var/app/current/
1010
autostart=true
1111
autorestart=true
@@ -111,17 +111,19 @@ function getEBWorkerConfig($path)
111111
{
112112
if (strpos($key, 'queue') !== false && strpos($key, 'queue_driver') === false)
113113
{
114-
$tryKey = substr($key, 10) . 'tries'; //get queue $key + tries to see if custom tries is set
114+
$tryKey = substr($key, 5) . 'tries'; //get queue $key + tries to see if custom tries is set
115115
$sleepKey = substr($key, 5) . 'sleep'; //get queue $key + sleep to see if custom sleep is set
116116
$numProcKey = substr($key, 5) . 'numprocs'; //get queue $key + num process to see if custom number of processes is set
117117
$startSecsKey = substr($key, 5) . 'startsecs'; //get queue $key + number of seconds the process should stay up
118+
$delayKey = substr($key, 5) . 'delay'; //get queue $key + delay in seconds before a job should re-enter the ready queue
118119

119120
$tries = isset($envVars[ $tryKey ]) ? $envVars[ $tryKey ] : 5;
120121
$sleep = isset($envVars[ $sleepKey ]) ? $envVars[ $sleepKey ] : 5;
121122
$numProcs = isset($envVars[ $numProcKey ]) ? $envVars[ $numProcKey ] : 1;
122123
$startSecs = isset($envVars[ $startSecsKey ]) ? $envVars[ $startSecsKey ] : 1;
124+
$delay = isset($envVars[ $delayKey]) ? $envVars[ $delayKey ] : 0;
123125
$connection = isset($envVars['queue_driver']) ? $envVars['queue_driver'] : 'beanstalkd';
124-
$programs .= generateProgram($connection, $val, $tries, $sleep, $numProcs, $startSecs);
126+
$programs .= generateProgram($connection, $val, $tries, $sleep, $numProcs, $delay, $startSecs);
125127
}
126128
}
127129
}

0 commit comments

Comments
 (0)