/** * Release the job back into the queue. * * @param int $delay * * @return void */ public function release($delay = 0) { $release = new \DateTime(); $release->setTimezone(new \DateTimeZone('UTC')); $release->add(new \DateInterval('PT' . $delay . 'S')); $this->job->setScheduledEnqueueTimeUtc($release); $this->azure->unlockMessage($this->job); }
/** * Push a new job onto the queue after a delay. * * @param int $delay * @param string $job * @param mixed $data * @param string $queue * * @return void */ public function later($delay, $job, $data = '', $queue = null) { $payload = $this->createPayload($job, $data); $release = new \DateTime(); $release->setTimezone(new \DateTimeZone('UTC')); $release->add(new \DateInterval('PT' . $delay . 'S')); $message = new BrokeredMessage($payload); $message->setScheduledEnqueueTimeUtc($release); $this->azure->sendQueueMessage($this->getQueue($queue), $message); }
/** * @covers WindowsAzure\ServiceBus\Models\BrokeredMessage::getScheduledEnqueueTimeUtc * @covers WindowsAzure\ServiceBus\Models\BrokeredMessage::setScheduledEnqueueTimeUtc */ public function testGetSetScheduledEnqueueTimeUtc() { // Setup $expected = 'testScheduledEnqueueTimeUtc'; $brokeredMessage = new BrokeredMessage(); // Test $brokeredMessage->setScheduledEnqueueTimeUtc($expected); $actual = $brokeredMessage->getScheduledEnqueueTimeUtc(); // Assert $this->assertEquals($expected, $actual); }