protected function execute(InputInterface $input, OutputInterface $output) { $args = json_decode(fgets(STDIN)); $job = new Job($input->getArgument('class'), ...$args); $job = $this->metro->put($job, $input->getArgument('queue')); $output->writeln($job->getId()); }
function it_can_quit_when_the_queue_is_empty($executor, Queue $metro) { $job = new CommittedJob('123', 'my-queue', 'StdClass'); $metro->pop(['my-queue', 'your-queue'], $this)->shouldBeCalled()->willReturn($job, null); $executor->execute($job, Argument::type(LogProvider::class))->shouldBeCalled(); $metro->succeed('123')->shouldBeCalled(); $this->setInterval(10); $this->quitAsap(); $this->work($metro, ['my-queue', 'your-queue']); }