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:
- 以身份登录或切换到Magento文件系统所有者。
- 转到Magento安装目录。
- 输入以下命令:
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_schedule
Magento数据库的表中。该表提供了cron作业的历史记录,包括:
- 职位编号和代码
- 状态
- 创建日期
- 约定的日期
- 执行日期
- 结束日期
要查看表中的记录,请在命令行上登录到Magento数据库,然后输入
SELECT * from cron_schedule;