public function loadScheduleJob($name, $config) { $this->scheduledJobs[$name] = $config; $this->logger->log(Psr\Log\LogLevel::INFO, 'Enqueuing {class} ({name})', array('class' => $config['class'], 'name' => $name)); $cron = \Cron\CronExpression::factory($config['cron']); $matches = $cron->getMultipleRunDates(2); $config['schedule_at'] = $matches[0]->getTimestamp(); $config['update_at'] = $matches[1]->getTimestamp(); if ($config['schedule_at'] != ResqueScheduler::getlastEnqueuedAt($name)) { $this->logger->log(Psr\Log\LogLevel::INFO, 'Scheduling {name} At {schedule_at} with next update At {update_at}', array('name' => $name, 'schedule_at' => date('d-m-Y H:i:s', $config['schedule_at']), 'update_at' => date('d-m-Y H:i:s', $config['update_at']))); ResqueScheduler::lastEnqueuedAt($name, $config['schedule_at']); ResqueScheduler::scheduleForUpdate($config['update_at'], $name); Resque::redis()->srem('schedules_changed', $name); $this->enqueueFromConfig($config); } }