我想要以编程方式创建cron工作任务,而不使用config.xml文件。这是否可行?
$timecreated = strftime("%Y-%m-%d %H:%M:%S", mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")));
$timescheduled = strftime("%Y-%m-%d %H:%M:%S", mktime(date("H"), date("i")+ 5, date("s"), date("m"), date("d"), date("Y")));
$jobCode = 'job_id';
try {
$schedule = Mage::getModel('cron/schedule');
$schedule->setJobCode($jobCode)
->setCreatedAt($timecreated)
->setScheduledAt($timescheduled)
->setStatus(Mage_Cron_Model_Schedule::STATUS_PENDING)
->save();
} catch (Exception $e) {
throw new Exception(Mage::helper('cron')->__('Unable to save Cron expression'));
}
Mage::getModel('cron/schedule')
并相应地设置数据,然后保存。无论如何,你需要在Magento的config.xml中定义什么是cron任务,以便关联。use Magento\Cron\Model\ScheduleFactory;
$jobCode = 'jobcode';
$schedule = $this->scheduleFactory->create();
$schedule->setJobCode($jobCode) ->setCreatedAt($timecreated) ->setScheduledAt($timescheduled) ->setStatus(self::STATUS_PENDING)->save();
YOUR_CODE_HERE
。这样可以使您的答案更易读。 - Nikhil Singh