コード例 #1
0
ファイル: bootstrap.php プロジェクト: uafrica/delayed-jobs
<?php

/**
 * =========================
 * DelayedJobs Plugin Config
 * =========================
 * 
 */
use Cake\Core\Configure;
$defaultConfig = ['maximum' => ['maxRetries' => 5, 'pulseTime' => 6 * 60 * 60, 'priority' => 100], 'default' => ['maxRetries' => 5], 'archive' => ['enabled' => false, 'tableName' => 'delayed_jobs_archive', 'recurring' => 'tomorrow 00:30']];
$delayedJobsConfig = Configure::read('DelayedJobs');
Configure::write('DelayedJobs', \Cake\Utility\Hash::merge($defaultConfig, $delayedJobsConfig));
\Cake\Database\Type::map('serialize', 'DelayedJobs\\Database\\Type\\SerializeType');
\DelayedJobs\RecurringJobBuilder::add(['worker' => 'DelayedJobs.Archive', 'priority' => Configure::read('maximum.priority')]);
コード例 #2
0
 public function recurring()
 {
     $this->out('Firing recurring event.');
     //Event is deprecated
     $event = new Event('DelayedJobs.recurring', $this);
     $event->result = RecurringJobBuilder::retrieve();
     EventManager::instance()->dispatch($event);
     $this->out(__('{0} jobs to queue', count($event->result)), 1, Shell::VERBOSE);
     foreach ($event->result as $job) {
         if (!$job instanceof Job) {
             $job = new Job($job + ['group' => 'Recurring', 'priority' => 100, 'maxRetries' => 5, 'runAt' => new Time('+30 seconds')]);
         }
         if (JobManager::instance()->isSimilarJob($job)) {
             $this->out(__('  <error>Already queued:</error> {0}', $job->getWorker()), 1, Shell::VERBOSE);
             continue;
         }
         $this->enqueue($job);
         $this->out(__('  <success>Queued:</success> {0}', $job->getWorker()), 1, Shell::VERBOSE);
     }
 }