[转]Magento 2中文文档教程 - 配置和运行cron(定时任务)

时间:2021-06-29 14:27:10

本文转自:https://blog.csdn.net/xz_src/article/details/72793476

cron(定时任务)概述

Magento 2 有许多功能需要用到cron(定时任务),例如下面这些功能:

  • Catalog price rules(分类价格规则)
  • Newsletters(通讯邮件)
  • Generating(生成) Google sitemaps
  • 客户提醒/通知(产品价格变化,产品库存)
  • 刷新索引
  • 汇率自动更新
  • Magento 2 所有的电子邮件(包括所有的交易和订单确认)

我们建议您运行的cron为Magento 2文件系统所有者. 而不是root用户。

你不可以再运行 dev/tools/cron.sh 因为这个脚本已经被删除了.

Magento 2许多重要的功能取决于系统配置适当的cron,包括索引。未能正确设置意味着Magento 2功能没有达到预期效果。

在浏览器中运行cron可以查看在浏览器运行安全设置 cron.php

第一步

  1. 登录到Magento服务器切换到Magento 2文件系统的所有者用户要有写入的权限.

    如果你使用bash shell,你也可以使用下面的语法转换到Magento文件系统所有者:

    su <Magento 2文件系统所有者> -s /bin/bash -c <command>
    sudo -u <Magento 2文件系统所有者> <command>

您也可以按下列方式运行命令:

  • cd <Magento 2 安装目录>/bin 并运行它们 ./magento <command name>
  • php <Magento 2 安装目录>/bin/magento <command name>

从命令行运行cron

命令选项:

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

设置自定义corn, 查看 配置自定义cron.

你必须运行cron两次:第一次获得定时任务,第二次运行定时任务。

在后台运行cron

Magento 2文件系统所有者运行cron

先决条件

Magento2 有两套cron配置,每个cron运行不同的配置:

  • PHP的命令行配置:一般的cron作业,更新索引,生成电子邮件,生成站点地图,等等。

    您可以找到命令行配置使用命令php --ini.

  • web服务器PHP插件配置: 其他两个cron作业所使用的组件管理器和系统升级工具.

    您可以找到Web服务器插件配置使用phpinfo.php

  • 为了避免安装和升级过程中出现的问题,我们强烈建议您在PHP命令行配置和PHP web服务器插件的配置中应用相同的PHP设置。.
  • 在一个多节点的系统,可以只在一个节点上运行crontab。

查看 php.ini 路径

查看命令

which php

命令结果如下:

/usr/bin/php

创建cron(定时任务)

创建一个Magento 2文件系统所有者的cron,输入下面的命令:

crontab -u <Magento 2文件系统所有者用户名> -e

示例,

crontab -u magento_user -e

文本编辑器显示。(您可能需要先选择文本编辑器。)

* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log
* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log