/** * Enqueues Jobs using DJJob * * Note that all Jobs enqueued using this system must extend the base CakeJob * class which is included in this plugin * * @param Model $Model Model using the behavior * @param Job $job * @param string $queue * @param string $runAt * @return bool True if enqueue is successful, false on failure */ public function enqueue(Model $Model, $job, $queue = "default", $runAt = null) { return DJJob::enqueue($job, $queue, $runAt); }
echo "Hello {$this->name}!\n"; sleep(1); } } class FailingJob { public function perform() { sleep(1); throw new Exception("Uh oh"); } } $status = DJJob::status(); assert('$status["outstanding"] == 0', "Initial outstanding status is incorrect"); assert('$status["locked"] == 0', "Initial locked status is incorrect"); assert('$status["failed"] == 0', "Initial failed status is incorrect"); assert('$status["total"] == 0', "Initial total status is incorrect"); printf("=====================\nStarting run of DJJob\n=====================\n\n"); DJJob::enqueue(new HelloWorldJob("delayed_job")); DJJob::bulkEnqueue(array(new HelloWorldJob("shopify"), new HelloWorldJob("github"))); DJJob::enqueue(new FailingJob()); // Test unicode support using the classic, rails snowman: http://www.fileformat.info/info/unicode/char/2603/browsertest.htm DJJob::enqueue(new HelloWorldJob(html_entity_decode("☃", ENT_HTML5, "UTF-8"))); $worker = new DJWorker(array("count" => 5, "max_attempts" => 2, "sleep" => 10)); $worker->start(); printf("\n============\nRun complete\n============\n\n"); $status = DJJob::status(); assert('$status["outstanding"] == 0', "Final outstanding status is incorrect"); assert('$status["locked"] == 0', "Final locked status is incorrect"); assert('$status["failed"] == 1', "Final failed status is incorrect"); assert('$status["total"] == 1', "Final total status is incorrect");
/** * Enables requeing of an email * * @param datetime $sendAt MySQL-compatible datetime * @param string $queue Name of queue * @return void */ public function sendLater($sendAt = null, $queue = "email") { DJJob::enqueue($this, $queue, $sendAt); }
public function perform() { echo "Hello {$this->name}!\n"; sleep(1); } } class FailingJob { public function perform() { sleep(1); throw new Exception("Uh oh"); } } $status = DJJob::status(); assert('$status["outstanding"] == 0', "Initial outstanding status is incorrect"); assert('$status["locked"] == 0', "Initial locked status is incorrect"); assert('$status["failed"] == 0', "Initial failed status is incorrect"); assert('$status["total"] == 0', "Initial total status is incorrect"); printf("=====================\nStarting run of DJJob\n=====================\n\n"); DJJob::enqueue(new HelloWorldJob("delayed_job")); DJJob::bulkEnqueue(array(new HelloWorldJob("shopify"), new HelloWorldJob("github"))); DJJob::enqueue(new FailingJob()); $worker = new DJWorker(array("count" => 5, "max_attempts" => 2, "sleep" => 10)); $worker->start(); printf("\n============\nRun complete\n============\n\n"); $status = DJJob::status(); assert('$status["outstanding"] == 0', "Final outstanding status is incorrect"); assert('$status["locked"] == 0', "Final locked status is incorrect"); assert('$status["failed"] == 1', "Final failed status is incorrect"); assert('$status["total"] == 1', "Final total status is incorrect");
/** * Enqueues Jobs using DJJob * * Note that all Jobs enqueued using this system must extend the base CakeJob * class which is included in this plugin * * @param Job $job * @param string $queue * @param string $runAt * @return bool True if enqueue is successful, false on failure */ function enqueue($job, $queue = "default", $runAt = null) { return DJJob::enqueue($job, $queue, $runAt); }