public function setUp() { Queue::factory(); $this->object = new Worker(); $this->object->setInterval(0.5); }
/** * * @param string $name * @param array $data * @param int $priority * @param string $unique_id * @param string $methodName * * @return Task */ public static function create($name, $data = array(), $priority = self::PRIORITY_NORMAL, $unique_id = null, $methodName = null) { $queue = Queue::get(); $task = new self($name, $data, $priority, $unique_id, $methodName); $queue->addTask($task); return $task; }
/** * * @return Queue */ public function getQueue() { if (null === $this->_queue) { $this->_queue = Queue::get(); } return $this->_queue; }
/** * @covers \Qutee\Task::create * @todo This is integrational test, not unit test, remedy! */ public function testCreatingTaskViaStaticMethodAddsTaskToQueue() { $queue = Queue::factory(); $this->assertEmpty($queue->getTasks()); $data = array('test' => 'data'); Task::create('TestTask', $data, Task::PRIORITY_LOW, 'unq', 'methodName'); $task = $queue->getTask(); $this->assertInstanceOf('\\Qutee\\Task', $task); $this->assertEquals('TestTask', $task->getName()); $this->assertEquals(Task::PRIORITY_LOW, $task->getPriority()); $this->assertEquals(md5('TestTaskunq'), $task->getUniqueId()); $this->assertEquals('methodName', $task->getMethodName()); $this->assertSame($data, $task->getData()); }
<?php /* * php app.php */ $loader = (require_once __DIR__ . "/../vendor/autoload.php"); $loader->add('Acme', __DIR__); use Qutee\Queue; use Qutee\Task; use Qutee\Worker; // Setup our queue with persistor of choice, preferably in // Dependency Injection Container $redisParams = array('host' => '127.0.0.1', 'port' => 6379); $queuePersistor = new Qutee\Persistor\Redis($redisParams); $queue = new Queue(); $queue->setPersistor($queuePersistor); // Create a task $task = new Task(); $task->setName('Acme/SendMail')->setData(array('to' => '*****@*****.**', 'from' => '*****@*****.**', 'subject' => 'Hi!', 'text' => 'It\'s your faithful QuTee!'))->setPriority(Task::PRIORITY_HIGH)->setUniqueId('*****@*****.**'); // Queue it $queue->addTask($task); // Or do this in one go, if you set the queue (bootstrap maybe?) Task::create('Acme/SendMail', array('to' => '*****@*****.**', 'from' => '*****@*****.**', 'subject' => 'Hi!', 'text' => 'It\'s your faithful QuTee!'), Task::PRIORITY_HIGH); // Send worker to do it $worker = new Worker(); $worker->setQueue($queue)->setPriority(Task::PRIORITY_HIGH); while (true) { try { if (null !== ($task = $worker->run())) { echo 'Ran task: ' . $task->getName() . PHP_EOL; }
/** * @covers \Qutee\Queue::get * @expectedException \Qutee\Exception */ public function testGettingQueueWithoutPreviouslyCreatingItThrowsException() { Queue::setInstance(null); Queue::get(); }