【发布时间】:2014-11-23 15:48:10
【问题描述】:
我正在尝试通过 Plesk 11.5.30 管理控制台使用 Bolt.cm 设置 cron 作业。
Bolt 任务调度器文档:https://docs.bolt.cm/v20/tasks
计划任务
我为apache 用户设置了crontab,如下所示:
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。
螺栓配置
在我的配置文件中,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表仍然是空的。
如果有人可以帮助提出一些建议,我可以尝试运行它,我们将不胜感激。
修复
为了解决这个问题,我将我的计划更改为每 5 分钟执行一次(更快的调试循环)。然后我做了以下发现:
- 我必须为 nut 文件设置 public 的执行权限(这样 apache 用户才能执行它)
- 对于我使用的服务器,只有完整路径版本有效
感谢@Gawain 提示我正确的方向。
【问题讨论】: