/**
  * 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);
 }
Ejemplo n.º 2
0
        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);
 }
Ejemplo n.º 4
0
    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);
 }