/** * @return int */ public function count() { return $this->memory->count() + $this->queue->count(); }
/** * @return array */ public function info() { $workers = $this->manager->info(); return [Info::BUSY => $workers[Info::BUSY], Info::CALLS => $this->queue->count(), Info::IDLE => $workers[Info::IDLE], Info::SIZE => $workers[Info::TOTAL]]; }
/** * @dataProvider queueProvider */ public function testOperations(QueueInterface $queue) { $rpc0 = Factory::rpc('a', ['b']); $rpc1 = Factory::rpc('c', ['d']); $rpc2 = Factory::rpc('e', ['f']); $this->assertSame(0, $queue->count()); $queue->enqueue($rpc0); $this->assertSame(1, $queue->count()); $queue->enqueue($rpc1); $this->assertSame(2, $queue->count()); $queue->enqueue($rpc2); $this->assertSame(3, $queue->count()); $this->assertSame(json_encode($rpc0), json_encode($this->dequeue($queue->dequeue()))); $this->assertSame(2, $queue->count()); $this->assertSame(json_encode($rpc1), json_encode($this->dequeue($queue->dequeue()))); $this->assertSame(1, $queue->count()); $this->assertSame(json_encode($rpc2), json_encode($this->dequeue($queue->dequeue()))); $this->assertSame(0, $queue->count()); }