public function testStatusTrackingCanBeStopped() { Status::create('test'); $status = new Status('test'); $this->assertEquals(Status::STATUS_WAITING, $status->get()); $status->stop(); $this->assertFalse($status->get()); }
/** * 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; }