/** * Create a cronParser and check to see if we need to create new jobs * * @return void */ function process() { global $db; $cronParser =& new CronParser($this->cronDefinition); if ($this->getId() && $cronParser->getLastRanUnix() > $this->getLastActualTimestamp()) { if (function_exists('writeLog')) { writeLog('creating job because ' . date('d-m-Y H:i', $cronParser->getLastRanUnix()) . ' > ' . date('d-m-Y H:i', $this->getLastActualTimestamp()) . ' (' . $cronParser->getLastRanUnix() . ' > ' . $this->getLastActualTimestamp() . ')'); } $this->lastActualTimestamp = time(); $sql = 'UPDATE `' . DB_NAME . '`.`' . TABLE_CRONTAB . '` SET `lastActualTimestamp`= ' . $db->Quote($this->lastActualTimestamp) . ' WHERE `id`= ' . $db->Quote($this->getId()); $db->Execute($sql); $job = new CronJob(); $job->createFromCrontab(&$this); $job->update(); } return; }
public function formui_submit(FormUI $form) { if (isset($form->cron_id)) { $cron = CronTab::get_cronjob((int) $form->cron_id->value); } else { $required = array('cron_name', 'callback', 'description'); foreach ($required as $req) { if (!$form->{$req}->value) { Session::error(_t('%s is a required feild.', array(ucwords($req)), 'crontabmanager')); return; } } $cron = new CronJob(); //$cron->insert(); } $cron->name = $form->cron_name->value; $cron->callback = strpos($form->callback->value, 'a:') === 0 || strpos($form->callback->value, 'O:') === 0 ? unserialize($form->callback->value) : $form->callback->value; $cron->increment = $form->increment->value ? $form->increment->value : 86400; $cron->next_run = HabariDateTime::date_create(isset($form->next_run) && $form->next_run->value ? $form->next_run->value : HabariDateTime::date_create()); $cron->start_time = HabariDateTime::date_create($form->start_time->value ? $form->start_time->value : HabariDateTime::date_create()); $cron->end_time = $form->end_time->value ? HabariDateTime::date_create($form->end_time->value) : null; $cron->description = $form->description->value; $cron->cron_class = $form->cron_class->value; if (intval(Options::get('next_cron')) > $cron->next_run->int) { Options::set('next_cron', $cron->next_run->int); } if ($cron->update()) { Session::notice(_t('Cron Job saved.', 'crontabmanager')); } else { Session::error(_t('Could not save Cron Job.', 'crontabmanager')); } }