/** * Listen to the given queue. * * @param string $connectionName * @param string $queue * @param int $delay * @param int $sleep * @param int $maxTries * @return array */ public function pop($connectionName, $queue = null, $delay = 0, $sleep = 3, $maxTries = 0) { $connection = Queue::connection($connectionName); if ($job = $connection->pop($queue)) { return $this->process($job, $maxTries, $delay); } // Sleep the worker for the specified number of seconds, if no jobs sleep($sleep); return ['job' => null, 'failed' => false]; }
use Phalcon\Version; use Phwoolcon\Aliases; use Phwoolcon\Cache; use Phwoolcon\Config; use Phwoolcon\Cookies; use Phwoolcon\Db; use Phwoolcon\DiFix; use Phwoolcon\Events; use Phwoolcon\I18n; use Phwoolcon\Log; use Phwoolcon\Queue; use Phwoolcon\Router; use Phwoolcon\Session; use Phwoolcon\Util\Counter; use Phwoolcon\View; $_SERVER['PHWOOLCON_PHALCON_VERSION'] = Version::getId(); Events::register($di); DiFix::register($di); Db::register($di); Cache::register($di); Log::register($di); Config::register($di); Counter::register($di); Aliases::register($di); Router::register($di); I18n::register($di); Cookies::register($di); Session::register($di); View::register($di); Queue::register($di); $loader->registerNamespaces(Config::get('app.autoload.namespaces', []), true);
public function testFailedListener() { Queue::register($this->di); $queue = Queue::connection(); $workerClass = TestQueueWorker::class; $data = ['test' => 'listener']; TestQueueWorker::reset(); $queue->push("{$workerClass}::staticFailureWorker", $data); // Failure $listener = new Listener(); $e = null; try { $listener->pop('', null, 0, 0, 1); } catch (Exception $e) { } $this->assertInstanceOf(Exception::class, $e); // Log failure job $result = $listener->pop('', null, 0, 0, 1); $this->assertTrue(fnGet($result, 'failed')); }