Magento2 Crontab

配置并运行cron

cron概述

在这篇文章中,我们将学习在服务器上为Magento 2 cron设置cron。在Magento 2中,它们有许多配置,需要cron才能正确执行magento。Magento的一些功能至少需要一项cron作业,该作业可以安排将来进行的活动。这些活动的部分列表如下:

  • Catalog price rules
  • Newsletters
  • Generating Google sitemaps
  • Customer Alerts/Notifications (product price change, product back in stock)
  • Reindexing
  • Private sales (Magento Commerce only)
  • Automatic updating of currency rates
  • All Magento e-mails (including order confirmation and transactional)

上面英文翻译如下:

  • 目录价格规则
  • 时事通讯
  • 生成Google网站地图
  • 客户警报/通知(产品价格变动,产品退货)
  • 重新索引
  • 私人销售(仅适用于Magento Commerce)
  • 自动更新货币汇率
  • 所有Magento电子邮件(包括订单确认和交易)

在安装了Magento2的源码之后,需要执行crontab的安装,如果不安装将出现下面提示语句。

创建Magento crontab

Magento2 crontab的安装方法:

php bin/magento cron:install

安装完成之后,会出现下面的界面

ysqdeMBP:magento ysq$ php bin/magento cron:install
Crontab has been generated and saved
ysqdeMBP:magento ysq$ crontab -l

#~ MAGENTO START 56e3078b9e99cf2304176bed62b6b007
* * * * * /Applications/MAMP/bin/php/php7.2.22/bin/php /Users/ysq/work/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /Users/ysq/work/magento/var/log/magento.cron.log
* * * * * /Applications/MAMP/bin/php/php7.2.22/bin/php /Users/ysq/work/magento/update/cron.php >> /Users/ysq/work/magento/var/log/update.cron.log
* * * * * /Applications/MAMP/bin/php/php7.2.22/bin/php /Users/ysq/work/magento/bin/magento setup:cron:run >> /Users/ysq/work/magento/var/log/setup.cron.log
#~ MAGENTO END 56e3078b9e99cf2304176bed62b6b007

ysqdeMBP:magento ysq$

界面截图

这个时候,再去看网站,上面提示的信息已经消失了。

索引管理显示正常:


删除Magento crontab

删除Magento crontab:

  1. 以身份登录或切换到Magento文件系统所有者
  2. 转到Magento安装目录。
  3. 输入以下命令:
php bin/magento cron:remove

删除之后,就没有定时任务了。 如下图所示

从命令行运行cron

命令选项:

php bin/magento cron:run [--group="<cron group name>"] 

其中--group指定要运行的cron组(忽略此选项可对所有组运行cron)

要运行索引计划作业,请输入:

php bin/magento cron:run --group index

要运行默认的cron作业,请输入:

php bin/magento cron:run --group default

cron 运行记录

所有cron职位信息都从system.log单独的信息中移出来cron.log。默认情况下,cron信息位于<install_directory>/var/log/magento.cron.log。cron作业的所有异常均由记录\Magento\Cron\Observer\ProcessCronQueueObserver::execute

所有cron数据也将写入cron_scheduleMagento数据库的表中。该表提供了cron作业的历史记录,包括:

  • 职位编号和代码
  • 状态
  • 创建日期
  • 约定的日期
  • 执行日期
  • 结束日期

要查看表中的记录,请在命令行上登录到Magento数据库,然后输入

SELECT * from cron_schedule;