Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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));
 }
Esempio n. 3
0
 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);
 }