【问题标题】:Why would my cron job fail half the time?为什么我的 cron 作业会失败一半?
【发布时间】:2016-03-18 18:45:04
【问题描述】:

我在运行 CiviCRM 4.6.1 的 Wordpress 4.3 站点上的 Site Ground 托管的站点上通过 cpanel 使用 Cron Jobs。目的是每 30 分钟运行一次作业(这是我们的 ISP 允许的最长时间)。我已经按照http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs 的建议尝试了这些不同的调用(省略了站点、用户名和密码):

0,30 * * * * php public_html/wp-content/plugins/civicrm/civicrm/bin/cli.php -s *site* -u *username* -p *password* -e Job -a execute 

*/30 * * * * php public_html/wp-content/plugins/civicrm/civicrm/bin/cli.php -s *site* -u *username* -p *password* -e Job -a execute 

或作为两个电话:

30 * * * * php public_html/wp-content/plugins/civicrm/civicrm/bin/cli.php -s *site* -u *username* -p *password* -e Job -a execute

0 * * * * php public_html/wp-content/plugins/civicrm/civicrm/bin/cli.php -s *site* -u *username* -p *password* -e Job -a execute

出于某种原因,无论我如何编写 cron 作业,cron 总是在一小时内失败,但不是一半。在我的 cron 电子邮件回复中收到以下错误:

数据库错误:未选择数据库 在 callApi 期间死亡

但它每次都运行相同的代码,所以我不应该在每次 cron 运行时都得到这个吗?在半小时内,一切都按原样执行,预定的电子邮件会正确发送。有什么我想念的吗?此外,每次我从终端运行命令时,它都会正确执行并发送预定的电子邮件。只有每小时的 cron 工作给了我这个问题。感谢您的帮助。

【问题讨论】:

  • 您是否有一个 CiviCRM 计划作业设置为每小时执行一次(每小时一次)并且可能会失败(检查登录 /civicrm/admin/job?reset=1 -> 查看作业日志)
  • 当然,这完全有道理,我在其他一些工作中发现了错误。目前,我会将 cron 作业隔离到邮件中,如果需要,稍后再添加其他作业。谢谢!

标签: mysql wordpress cron civicrm


【解决方案1】:

谢谢萨缪尔索夫。问题在于执行所有 CiviCRM 计划作业。邮件发送不是问题,它是其他过程之一。我更改了 cron 以运行特定的预定邮件作业,问题就消失了。现在,如果我想包含其他作业,我可以对其进行故障排除。谢谢!

【讨论】:

    最近更新 更多