mirror of
https://github.com/idanoo/php-resque.git
synced 2024-11-22 00:11:53 +00:00
726e58a297
Corrected unit tests for new code Add partial unit coverage for logging class Add newline to logTest file
117 lines
3.0 KiB
PHP
Executable File
117 lines
3.0 KiB
PHP
Executable File
#!/usr/bin/env php
|
|
<?php
|
|
|
|
// Find and initialize Composer
|
|
$files = array(
|
|
__DIR__ . '/../../vendor/autoload.php',
|
|
__DIR__ . '/../../../autoload.php',
|
|
__DIR__ . '/../../../../autoload.php',
|
|
__DIR__ . '/../vendor/autoload.php',
|
|
);
|
|
|
|
$found = false;
|
|
foreach ($files as $file) {
|
|
if (file_exists($file)) {
|
|
require_once $file;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!class_exists('Composer\Autoload\ClassLoader', false)) {
|
|
die(
|
|
'You need to set up the project dependencies using the following commands:' . PHP_EOL .
|
|
'curl -s http://getcomposer.org/installer | php' . PHP_EOL .
|
|
'php composer.phar install' . PHP_EOL
|
|
);
|
|
}
|
|
|
|
$QUEUE = getenv('QUEUE');
|
|
if(empty($QUEUE)) {
|
|
die("Set QUEUE env var containing the list of queues to work.\n");
|
|
}
|
|
|
|
$REDIS_BACKEND = getenv('REDIS_BACKEND');
|
|
$REDIS_BACKEND_DB = getenv('REDIS_BACKEND_DB');
|
|
if(!empty($REDIS_BACKEND)) {
|
|
if (empty($REDIS_BACKEND_DB))
|
|
Resque::setBackend($REDIS_BACKEND);
|
|
else
|
|
Resque::setBackend($REDIS_BACKEND, $REDIS_BACKEND_DB);
|
|
}
|
|
|
|
$logLevel = false;
|
|
$LOGGING = getenv('LOGGING');
|
|
$VERBOSE = getenv('VERBOSE');
|
|
$VVERBOSE = getenv('VVERBOSE');
|
|
if(!empty($LOGGING) || !empty($VERBOSE)) {
|
|
$logLevel = true;
|
|
}
|
|
else if(!empty($VVERBOSE)) {
|
|
$logLevel = true;
|
|
}
|
|
|
|
$logger = new Resque_Log($logLevel);
|
|
|
|
$APP_INCLUDE = getenv('APP_INCLUDE');
|
|
if($APP_INCLUDE) {
|
|
if(!file_exists($APP_INCLUDE)) {
|
|
die('APP_INCLUDE ('.$APP_INCLUDE.") does not exist.\n");
|
|
}
|
|
|
|
require_once $APP_INCLUDE;
|
|
}
|
|
|
|
$BLOCKING = getenv('BLOCKING') !== FALSE;
|
|
|
|
$interval = 5;
|
|
$INTERVAL = getenv('INTERVAL');
|
|
if(!empty($INTERVAL)) {
|
|
$interval = $INTERVAL;
|
|
}
|
|
|
|
$count = 1;
|
|
$COUNT = getenv('COUNT');
|
|
if(!empty($COUNT) && $COUNT > 1) {
|
|
$count = $COUNT;
|
|
}
|
|
|
|
$PREFIX = getenv('PREFIX');
|
|
if(!empty($PREFIX)) {
|
|
$logger->log(Psr\Log\LogLevel::INFO, 'Prefix set to {prefix}', array('prefix' => $PREFIX));
|
|
Resque_Redis::prefix($PREFIX);
|
|
}
|
|
|
|
if($count > 1) {
|
|
for($i = 0; $i < $count; ++$i) {
|
|
$pid = Resque::fork();
|
|
if($pid == -1) {
|
|
$logger->log(Psr\Log\LogLevel::EMERGENCY, 'Could not fork worker {count}', array('count' => $i));
|
|
die();
|
|
}
|
|
// Child, start the worker
|
|
else if(!$pid) {
|
|
$queues = explode(',', $QUEUE);
|
|
$worker = new Resque_Worker($queues);
|
|
$worker->setLogger(new Resque_Log($logLevel));
|
|
$logger->log(Psr\Log\LogLevel::NOTICE, 'Starting worker {worker}', array('worker' => $worker));
|
|
$worker->work($interval, $BLOCKING);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
// Start a single worker
|
|
else {
|
|
$queues = explode(',', $QUEUE);
|
|
$worker = new Resque_Worker($queues);
|
|
$worker->setLogger(new Resque_Log($logLevel));
|
|
|
|
$PIDFILE = getenv('PIDFILE');
|
|
if ($PIDFILE) {
|
|
file_put_contents($PIDFILE, getmypid()) or
|
|
die('Could not write PID information to ' . $PIDFILE);
|
|
}
|
|
|
|
$logger->log(Psr\Log\LogLevel::NOTICE, 'Starting worker {worker}', array('worker' => $worker));
|
|
$worker->work($interval, $BLOCKING);
|
|
}
|
|
?>
|