Exemplo n.º 1
0
 function it_can_be_executed(Redis $tx)
 {
     $id = '123';
     $now = '2015-04-18T13:16:16.263400+0000';
     $tx->watch("job:{$id}:txid")->shouldBeCalled();
     $tx->zscore("queue:my-queue:failed", $id)->willReturn(1);
     $tx->multi()->shouldBeCalled();
     $tx->zrem('queue:my-queue:failed', $id)->shouldBeCalled()->willReturn(0);
     $tx->lpush('queue:my-queue:pending', $id)->shouldBeCalled();
     $tx->rpush("job:{$id}:history", Encoder::encode([$now, 'queued']))->shouldBeCalled();
     $tx->incr("job:{$id}:tries")->shouldBeCalled();
     $tx->incr("job:{$id}:txid")->shouldBeCalled();
     $this->execute();
 }
Exemplo n.º 2
0
 function it_can_be_executed(Redis $tx)
 {
     $id = '123';
     $nowTs = 1429362976.2634;
     $nowIso = '2015-04-18T13:16:16.263400+0000';
     $expectedJob = $this->createJob();
     $tx->watch("job:{$id}:txid")->shouldBeCalled();
     $tx->multi()->shouldBeCalled();
     $tx->sadd('queues', 'my-queue')->shouldBeCalled();
     $tx->zadd('jobs', $nowTs, $id)->shouldBeCalled();
     $tx->zrem('queue:my-queue:failed', $id)->shouldBeCalled()->willReturn(0);
     $tx->lpush('queue:my-queue:pending', $id)->shouldBeCalled();
     $tx->setnx("job:{$id}", Encoder::encode($expectedJob))->shouldBeCalled();
     $tx->incr("job:{$id}:tries")->shouldBeCalled();
     $tx->rpush("job:{$id}:history", Encoder::encode([$nowIso, 'queued']))->shouldBeCalled();
     $tx->incr("job:{$id}:txid")->shouldBeCalled();
     $this->execute();
 }
Exemplo n.º 3
0
 function it_can_be_executed(Redis $tx)
 {
     $id = '123';
     $nowIso = '2015-04-18T13:16:16.263400+0000';
     $nowTs = 1429362976.2634;
     $tx->watch("job:{$id}:txid")->shouldBeCalled();
     $tx->zscore('queue:my-queue:succeeded', $id)->willReturn(null);
     $tx->multi()->shouldBeCalled();
     $tx->lrem('queue:my-queue:processing', 1, $id)->shouldBeCalled()->willReturn(1);
     $tx->zadd('queue:my-queue:failed', $nowTs, $id)->shouldBeCalled();
     $tx->rpush("job:{$id}:history", Encoder::encode([$nowIso, 'failed']))->shouldBeCalled();
     $tx->incr("job:{$id}:txid")->shouldBeCalled();
     $this->execute();
 }
Exemplo n.º 4
0
 function it_can_be_executed(Redis $redis)
 {
     $jobId = '6db66951-c497-4d83-bfae-5fe78452e92b';
     $nowIso = '2015-04-18T13:16:16.263400+0000';
     $job = Encoder::encode(new CommittedJob($jobId, 'my-queue', 'StdClass', 'arg1', 'arg2'));
     $redis->rpoplpush("queue:my-queue:pending", "queue:my-queue:processing")->willReturn($jobId);
     $redis->incr("job:{$jobId}:txid")->shouldBeCalled();
     $redis->get("job:{$jobId}")->willReturn($job);
     $redis->rpush("job:{$jobId}:history", Encoder::encode([$nowIso, 'processing']))->shouldBeCalled();
     $job = $this->execute();
     $job->shouldHaveType(CommittedJob::class);
     $job->getId()->shouldReturn($jobId);
     $job->getQueueId()->shouldReturn('my-queue');
     $job->getImplementation()->shouldReturn('StdClass');
 }
Exemplo n.º 5
0
 function it_can_pop_jobs_off_the_queue(Redis $redis, Worker $worker, MetroFactory $factory, RegisterWorkerTransaction $workerTransaction)
 {
     $jobId = '6db66951-c497-4d83-bfae-5fe78452e92b';
     $nowIso = '2015-04-18T13:16:16.263400+0000';
     $job = Encoder::encode(new CommittedJob($jobId, 'my-queue', 'StdClass', 'arg1', 'arg2'));
     $factory->createRegisterWorkerTransaction($worker, ['my-queue', 'your-queue'])->willReturn($workerTransaction);
     $workerTransaction->execute()->shouldBeCalled();
     # TODO
     $redis->rpoplpush("queue:my-queue:pending", "queue:my-queue:processing")->willReturn(null);
     $redis->rpoplpush("queue:your-queue:pending", "queue:your-queue:processing")->willReturn($jobId);
     $redis->incr("job:{$jobId}:txid")->shouldBeCalled();
     $redis->get("job:{$jobId}")->willReturn($job);
     $redis->rpush("job:{$jobId}:history", Encoder::encode([$nowIso, 'processing']))->shouldBeCalled();
     $job = $this->pop(['my-queue', 'your-queue'], $worker);
     $job->shouldHaveType(CommittedJob::class);
     $job->getId()->shouldReturn($jobId);
     $job->getQueueId()->shouldReturn('my-queue');
     $job->getImplementation()->shouldReturn('StdClass');
 }