public function testExpiredJobsArePopped() { $jobs = [new RedisQueueIntegrationJob(0), new RedisQueueIntegrationJob(1), new RedisQueueIntegrationJob(2), new RedisQueueIntegrationJob(3)]; $this->queue->later(1000, $jobs[0]); $this->queue->later(-200, $jobs[1]); $this->queue->later(-300, $jobs[2]); $this->queue->later(-100, $jobs[3]); $this->assertEquals($jobs[2], unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); $this->assertEquals($jobs[1], unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); $this->assertEquals($jobs[3], unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); $this->assertNull($this->queue->pop()); $this->assertEquals(1, $this->redis->connection()->zcard('queues:default:delayed')); $this->assertEquals(3, $this->redis->connection()->zcard('queues:default:reserved')); }
/** * {@inheritdoc} */ public function release(int $delay = 0) { parent::release($delay); $this->redis->deleteAndRelease($this->queue, $this->reserved, $delay); }