我正在尝试通过 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。
螺栓配置
在我的配置文件中,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 提示我朝着正确的方向前进。