public function testAddJobDelayed() { $queue = 'test-' . substr(sha1(mt_rand()), 0, 6); $producer = new Producer($this->stream); $consumer = new Consumer($this->stream); $job = new Job("foo"); $job->setDelay(1); $job->setTtl(4); $job->setRetry(1); $this->assertEquals('', $job->getId()); $producer->addJob($queue, $job); $this->assertNotEquals('', $job->getId()); $this->assertNull($consumer->getJob($queue, 500)); // now the job should be returned $j = $consumer->getJob($queue, 5000); $this->assertInstanceOf('\\Phloppy\\Job', $j); }
public function testWorking() { $retry = rand(30, 60); $queue = 'test-' . substr(sha1(mt_rand()), 0, 6); $consumer = new Consumer($this->stream); $producer = new Producer($this->stream); $producer->addJob($queue, Job::create(['body' => __METHOD__, 'retry' => $retry, 'ttl' => 600])); $job = $consumer->getJob($queue); $this->assertEquals($retry, $consumer->working($job)); }
public function testLen() { $queueName = 'test-' . substr(sha1(mt_rand()), 0, 6); $queue = new Queue($this->stream); $producer = new Producer($this->stream); $consumer = new Consumer($this->stream); $job = new Job('job-body'); $this->assertSame(0, $queue->len($queueName)); $job->setRetry(1); $producer->addJob($queueName, $job); $this->assertSame(1, $queue->len($queueName)); $consumedJob = $consumer->getJob($queueName); $this->assertSame(0, $queue->len($queueName)); $this->assertEquals($job->getId(), $consumedJob->getId()); $this->assertEquals($job->getQueue(), $consumedJob->getQueue()); // should be retried after 1 second usleep(2500000.0); $this->assertSame(1, $queue->len($queueName)); $retriedJob = $consumer->getJob($queueName); $this->assertSame(0, $queue->len($queueName)); $this->assertEquals($retriedJob, $consumedJob); }