我正在尝试通过Plesk 11.5.30管理控制台使用Bolt.cm设置一个cron作业。
Bolt任务调度程序文档:https://docs.bolt.cm/v20/tasks
预定任务
我为crontab
用户设置了apache
,如下所示:
Min H DM M DW Command
0 */1 * * * /var/www/vhosts/mysite.com/httpdocs/app/nut cron
0 */1 * * * httpdocs/app/nut cron
这里有两个不同命令的原因是我在Plesk的另一个线程中读到了命令路径应该是域的相对路径。我假设如果第一个失败,第二个仍然会运行。我还假设上面每小时都会运行cron。
Bolt配置
在我的配置文件中,cron_hour
设置为凌晨3点。但是,当侦听器设置为每小时事件CRON_HOURLY
时,我假设绕过/忽略该设置。无论哪种方式,此设置已运行超过48小时,尚未见到任何影响。
螺栓设置
作为一项测试,我已将以下内容添加到我的Bolt扩展程序中,以便它在运行时只需向我发送一封电子邮件(以下内容已被删除以保持简短)。
use \Bolt\CronEvents;
class Extension extends \Bolt\BaseExtension
{
function initialize() {
$this->app['dispatcher']->addListener(CronEvents::CRON_HOURLY, array($this, 'cronNotifier'));
}
function cronNotifier() {
// send email script...
}
}
我已经测试了我的电子邮件脚本,所以我知道它有效。使用cron作业设置并假设正在运行此功能永远不会被击中。更重要的是,在数据库中bolt_cron
表仍然是空的。
如果有人可以提出建议,我可以试着让它运行起来,我将不胜感激。
THE FIX
为了解决这个问题,我改变了我的计划,每5分钟执行一次(更快的调试循环)。然后我做了以下发现:
感谢@Gawain提示我正确的方向。
答案 0 :(得分:1)
预定任务
是的,这看起来是正确的。最近增强了对目录位置的处理,但您以前需要在Bolt目录中调用nut。
Bolt配置
cron_hour
仅适用于每日和更长时间段。我最近修复了一个错误,它阻止了午夜到凌晨3点的任务。
好的,Bolt日志中应该记录有关运行cron事件的痕迹。
如果您运行此操作,您是否看到每小时作业触发器和您的电子邮件已发送?
./app/nut cron --run=cron.Hourly
如果可行,那么问题出在系统cron / crontab上,如果直接编辑你使用的是crontab -e
吗?
此外,如果您使用较旧的主服务器结账,您可以尝试在crontab命令部分前加上
cd /var/www/vhosts/mysite.com/httpdocs &&
...每次调用./app/nut