Merge pull request #299 from chrisboulton/fork-return

Return false if the fork function is unavailable
This commit is contained in:
Chris Boulton 2016-10-11 13:10:59 -07:00 committed by GitHub
commit c928347ae7
2 changed files with 6 additions and 7 deletions

View File

@ -96,7 +96,7 @@ if(!empty($PREFIX)) {
if($count > 1) {
for($i = 0; $i < $count; ++$i) {
$pid = Resque::fork();
if($pid == -1) {
if($pid === false || pid === -1) {
$logger->log(Psr\Log\LogLevel::EMERGENCY, 'Could not fork worker {count}', array('count' => $i));
die();
}

View File

@ -72,12 +72,12 @@ class Resque
*
* Will close connection to Redis before forking.
*
* @return int Return vars as per pcntl_fork()
* @return int Return vars as per pcntl_fork(). False if pcntl_fork is unavailable
*/
public static function fork()
{
if(!function_exists('pcntl_fork')) {
return -1;
return false;
}
// Close the connection to Redis before forking.
@ -281,12 +281,12 @@ class Resque
$originalQueue = 'queue:'. $queue;
$tempQueue = $originalQueue. ':temp:'. time();
$requeueQueue = $tempQueue. ':requeue';
// move each item from original queue to temp queue and process it
$finished = false;
while (!$finished) {
$string = self::redis()->rpoplpush($originalQueue, self::redis()->getPrefix() . $tempQueue);
if (!empty($string)) {
if(self::matchItem($string, $items)) {
self::redis()->rpop($tempQueue);
@ -311,7 +311,7 @@ class Resque
// remove temp queue and requeue queue
self::redis()->del($requeueQueue);
self::redis()->del($tempQueue);
return $counter;
}
@ -377,4 +377,3 @@ class Resque
return md5(uniqid('', true));
}
}