2014-09-29 59 views
2

我试图通过Plesk 11.5.30管理控制台设置与Bolt.cm的cron作业。
博尔特任务调度文档:https://docs.bolt.cm/v20/tasks在Plesk上使用Bolt设置cron作业11.5.30

计划任务

我对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小时,目前还没有效果。

螺栓安装

正如我已经添加以下到我的博尔特扩展,使运行时,它应该只是给我发电子邮件测试(以下已向下切入,以保持它短)。

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分钟(快速调试循环)执行。然后我做了如下发现:

  • 我必须设置公共的螺母文件执行权限(所以apache用户可以执行它)
  • 了,我只使用了服务器的完整路径版本的作品

谢谢@Gawain在正确的方向提示我。

回答

1

计划任务

是的,这看起来是正确的。目录位置的处理最近已得到增强,但您以前需要在Bolt目录中调用螺母。

博尔特配置

cron_hour仅适用于日常,和更长的时间。最近我修正了一个错误,那就是午夜到凌晨3点的小时工作。

好的,应该在Bolt日志中记录有关运行cron事件的跟踪。

如果您运行此操作,您是否看到小时工作触发器和您的电子邮件发送?

./app/nut cron --run=cron.Hourly

如果这样的作品,那么问题是与系统的cron/crontab中,如果编辑直接被你使用crontab -e

另外,如果你在主的旧结帐,你可以尝试的./app/nut

+0

右每次调用之前

cd /var/www/vhosts/mysite.com/httpdocs &&

前缀crontab命令部分......必须更改对nut文件的权限为744.现在我得到了'--run“选项不存在.'如果只是cron,尽管我看到它经历了每日,每周,每月,每年的任务和db更新。尽管没有电子邮件。 – diggersworld 2014-09-29 10:42:07

+0

OK ...服务器的'crontab'现在正以“555”的'nut'文件权限运行。然而,我的扩展功能仍然没有被执行,我在那里也增加了一个'log'方法。 – diggersworld 2014-09-29 11:33:13

+0

立即工作。我的电子邮件仍然没有发送,但我需要cron的功能已执行,所以我标记为已修复。将电子邮件视为一个单独的问题。 – diggersworld 2014-09-29 11:48:08