Example #1
0
 public function testStatusTrackingCanBeStopped()
 {
     Status::create('test');
     $status = new Status('test');
     $this->assertEquals(Status::STATUS_WAITING, $status->get());
     $status->stop();
     $this->assertFalse($status->get());
 }
Example #2
0
 /**
  * Create a new job and save it to the specified queue.
  *
  * @param string $queue The name of the queue to place the job in.
  * @param string $class The name of the class that contains the code to execute the job.
  * @param array $args Any optional arguments that should be passed when the job is executed.
  * @param boolean $monitor Set to true to be able to monitor the status of a job.
  *
  * @return string
  */
 public static function create($queue, $class, $args = null, $monitor = false)
 {
     if ($args !== null && !is_array($args)) {
         throw new InvalidArgumentException('Supplied $args must be an array.');
     }
     $new = true;
     if (isset($args['id'])) {
         $id = $args['id'];
         unset($args['id']);
         $new = false;
     } else {
         $id = md5(uniqid('', true));
     }
     Resque::push($queue, array('class' => $class, 'args' => $args, 'id' => $id));
     if ($monitor) {
         if ($new) {
             Status::create($id);
         } else {
             $statusInstance = new Status($id);
             $statusInstance->update(Status::STATUS_WAITING);
         }
     }
     return $id;
 }