/** * @param string $status * @param array $meta * @throws BufferedJobNotFoundException */ private function markJobAsFinished($status, array $meta) { if (!$this->database->has('queued_jobs', $meta['buffered_job_id'])) { throw new BufferedJobNotFoundException("", $meta['buffered_job_id'], $meta); } $row = $this->database->delete('queued_jobs', $meta['buffered_job_id']); $this->database->insert("{$status}_jobs", $meta['buffered_job_id'], $row); }
/** * @param int $count */ private function assertJobsAreQueued($count) { $uniqid = uniqid(); for ($i = 1; $i <= $count; $i++) { $row = ['buffered_job_id' => "{$uniqid}-{$i}-id", 'queue_name' => 'default-worker', 'job_name' => "{$uniqid}-{$i}-name", 'job_params' => ["{$uniqid}-{$i}-params"], 'run_after' => date('c'), 'job_rank' => $i, 'mutex_id' => "{$uniqid}-{$i}-mutex"]; $this->database->insert('buffered_jobs', "{$uniqid}-{$i}-id", $row); } $this->superqueue->queueJobsFromDatabaseToWorkerQueue(); $confirmed_messages = 0; for ($i = 1; $i <= $count; $i++) { $mq_message = json_decode($this->message_bank->consumeMessage()->getContent(), true); if ("{$uniqid}-{$i}-name" === $mq_message['name'] && $this->database->has('queued_jobs', "{$uniqid}-{$i}-id")) { ++$confirmed_messages; } } $this->assertSame($count, $confirmed_messages); }
/** * @covers ::has */ public function testARowCanBeDetectedInATable() { $this->assertFalse($this->database->has('buffered_jobs', 1)); $this->database->insert('buffered_jobs', 1, []); $this->assertTrue($this->database->has('buffered_jobs', 1)); }