Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function release(int $delay = 0)
 {
     $this->delete();
     $body = $this->message->body;
     $body = json_decode($body, true);
     $attempts = $this->attempts();
     $job = unserialize($body['data']['command']);
     // write attempts to job
     $job->attempts = $attempts + 1;
     $data = $body['data'];
     if ($delay > 0) {
         $this->connection->later($delay, $job, $data, $this->getQueue());
     } else {
         $this->connection->push($job, $data, $this->getQueue());
     }
 }
Exemplo n.º 2
0
 public function testPopProperlyPopsJobOffOfBeanstalkd()
 {
     $job = $this->mock(Job::class);
     $encrypter = $this->mock(EncrypterContract::class);
     $encrypter->shouldReceive('encrypt');
     $channel = $this->mock(AMQPChannel::class);
     $channel->shouldReceive('exchange_declare')->once()->with('messages.exchange', 'direct', false, true, false);
     $channel->shouldReceive('queue_declare')->once()->with('cnc', false, true, false, false);
     $channel->shouldReceive('queue_bind')->once()->with('cnc', 'messages.exchange', 'cnc');
     $channel->shouldReceive('basic_get')->once()->with('cnc')->andReturn($this->mock(AMQPMessage::class));
     $connection = $this->mock(AMQPStreamConnection::class);
     $connection->shouldReceive('channel')->once()->andReturn($channel);
     $queue = new RabbitMQQueue($connection, ['queue' => 'cnc', 'queue_params' => ['passive' => false, 'durable' => true, 'exclusive' => false, 'auto_delete' => false], 'exchange_params' => ['name' => 'messages.exchange', 'type' => 'direct', 'passive' => false, 'durable' => true, 'auto_delete' => false], 'exchange_declare' => true, 'queue_declare_bind' => 'cnc']);
     $queue->setEncrypter($encrypter);
     $queue->setContainer($this->mock(ContainerInterface::class));
     $result = $queue->pop();
     $this->assertInstanceOf(RabbitMQJob::class, $result);
 }