/**
  * Execution method always used for tasks
  *
  * @return void
  */
 public function execute()
 {
     Configure::write('debug', $this->params['debug']);
     if (empty($this->params['queue'])) {
         $this->cakeError('error', array(array('code' => '', 'name' => '', 'message' => 'No queue set')));
     }
     $status = DJJob::status($this->params['queue']);
     foreach ($status as $name => $count) {
         $this->out(sprintf("%s Jobs: %d", Inflector::humanize($name), $count));
     }
 }
 /**
  * Returns an array containing the status of a given queue
  *
  * @param Model $Model Model using the behavior
  * @param string $queue
  * @return array
  **/
 public function status(Model $Model, $queue = "default")
 {
     return DJJob::status($queue);
 }
Exemple #3
0
require dirname(__FILE__) . "/../DJJob.php";
DJJob::configure("mysql:host=127.0.0.1;dbname=djjob", array("mysql_user" => "root", "mysql_pass" => ""));
DJJob::runQuery("\nDROP TABLE IF EXISTS `jobs`;\nCREATE TABLE `jobs` (\n`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n`handler` VARCHAR(255) NOT NULL,\n`queue` VARCHAR(255) NOT NULL DEFAULT 'default',\n`attempts` INT UNSIGNED NOT NULL DEFAULT 0,\n`run_at` DATETIME NULL,\n`locked_at` DATETIME NULL,\n`locked_by` VARCHAR(255) NULL,\n`failed_at` DATETIME NULL,\n`error` VARCHAR(255) NULL,\n`created_at` DATETIME NOT NULL\n) ENGINE = MEMORY;\n");
class HelloWorldJob
{
    public function __construct($name)
    {
        $this->name = $name;
    }
    public function perform()
    {
        echo "Hello {$this->name}!\n";
        sleep(1);
    }
}
class FailingJob
{
    public function perform()
    {
        sleep(1);
        throw new Exception("Uh oh");
    }
}
var_dump(DJJob::status());
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();
var_dump(DJJob::status());
Exemple #4
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");
 /**
  * Returns an array containing the status of a given queue
  *
  * @param string $queue
  * @return array
  **/
 function status($queue = "default")
 {
     return DJJob::status($queue);
 }