foreach ($urls as $url) { $u = new Gaia\Container(parse_url($url)); if (!@fsockopen($u->host, $u->port)) { continue; } $status = TRUE; break; } if (!$status) { Tap::plan('skip_all', 'unable to connect to test job url: ' . $url); } Tap::plan(5); $tube = '__test__'; Job::config()->addConnection(new Pheanstalk('127.0.0.1', '11300')); Job::config()->setQueuePrefix('test'); $runner = new Runner(); $ct = $runner->flush($queue); print "\nJOBS flushed from the queue before starting: {$ct}\n"; for ($i = 0; $i < 100; $i++) { $start = microtime(TRUE); $job = new Job($url); $job->queue = $queue; $id = $job->store(); $elapsed = number_format(microtime(TRUE) - $start, 3); print "\nSTORE " . $id . ' ' . $elapsed . 's'; } $start = microtime(TRUE); $runner->watch($queue); $runner->setTimelimit(20); $runner->setMax(10); $runner->attachDebugger($debugger = function ($v) {
} if (!@fsockopen('127.0.0.1', '11299')) { die("unable to connect to test job url\n"); } $debugger = function ($v) { if ($v instanceof Exception) { $v = $v->__toString(); } if (!is_scalar($v)) { strval($v); } $dt = "\n[" . date('H:i:s') . '] '; echo $dt . str_replace("\n", $dt, trim($v)); }; $debugger("\nInstantiating job runner ... \n"); $runner = new Runner(); $nonce = new Nonce('test001'); $config = Job::config(); //$config->addConnection( new Pheanstalk('127.0.0.1', '11300' ) ); $config->setQueuePrefix('test'); //$config->addQueueRate('test*',10); // set up a connection pool for the default. $conn_pool = array(); $config->setBuilder(function ($job, array &$opts) use($nonce, &$conn_pool, $debugger) { $parts = new Gaia\Container(@parse_url($job->url)); $uri = isset($parts->path) ? $parts->path : '/'; if ($parts->query) { $uri = $uri . '?' . $parts->query; } if ($job->id) { $opts[CURLOPT_HTTPHEADER][] = 'X-Job-Id: ' . $job->id;