/**
  * 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);
 }