如何创建和配置 Magento 2 Cron?
Magento 2 Create Cron Job正在按时设置自动计划,这在您运行Magento 2 商店时非常方便。为什么它是一个如此有用的功能?例如,网站统计或内容管理系统等软件可能需要在特定时间进行活动,但您无法手动处理。这就是在您的 Web 服务器上创建 Cron Job 变得很方便的时候。
不用担心复杂的教程,因为我在这里是为了让您简单易懂。即使您不懂技术,您仍然可以轻松学习。
Magento 2 以编程方式创建 Cron 作业
- 什么是 Cron 作业?
- 如何在 Magento 2 中创建 Cron 作业
- 创建 crontab.xml
- 创建测试.php
- Magento 2 中 Cron Job 的应用
什么是 Cron 作业?
Cron Job是 Linux(用户免费的操作系统)的一个很棒的功能。cron 作业将创建适合您想要执行的任务的命令或脚本。Cron Job 允许在准确的时间和日期自动运行,而不是手动工作。由于其自动化,Cron Jobs 是每天或每周重复项目的完美选择。
笔记
Cron 配置在 Magento 中非常重要,它可以为许多系统活动设置时间表,例如重新索引、自动更新汇率、Magento 电子邮件等。只有当配置正确时,cron 作业才会激活。如果出现错误,这意味着 Magento 将无法按预期运行。
如何在 Magento 2 中创建 Cron 作业
请按照指南按照您的意愿启动cron 作业程序:
- 在“Cron”文件夹中创建一个类
- 使用 PHP 手动设置 cron 计划:
bin/magento cron:run
var/log/system.log
在 cron 作业运行后查找日志。- 登录到 Magento 2 管理面板,按照路径执行:
Stores > Configuration > Advanced > System
,然后更改每个 cron 组的调度程序设置。 - 最后,从命令行运行 cron:
magento cron:run [--group="<cron group name>"]
现在,我们将在HelloWorld 模块中添加一个自定义 cron 。
创造crontab.xml
文件:app/code/Example/HelloWorld/etc/crontab.xml
内容将是
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job instance="Example\HelloWorld\Cron\Test" method="execute" name="example_helloworld_cron">
<schedule>* * * * *</schedule>
</job>
</group>
</config>
group id
是你的 cron 组名称。您一次只能为单个组运行 cron。job instance
是要实例化的类(类路径)。job method
是要调用的方法job instance
。job name
是此 cron 作业的唯一 ID。schedule
是 cron 格式的计划。下图显示了它的组成部分:
* * * * * command to be executed
| | | | |
| | | | +----- Day of week (0 - 7) (Sunday=0 or 7)
| | | +------- Month (1 - 12)
| | +--------- Day of month (1 - 31)
| +----------- Hour (0 - 23)
+------------- Minute (0 - 59)
在 中crontab.xml
,我们定义job instance
为Example\HelloWorld\Cron\Test
。现在应该已经创建了。
创建测试.php
文件:app/code/
Example
/HelloWorld/Cron/Test.php
内容将是:
<?php
namespace Example\HelloWorld\Cron;
class Test
{
public function execute()
{
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/cron.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info(__METHOD__);
return $this;
}
}
全部完成,现在请刷新缓存并magento cron:run --group="default"
从命令行运行。
要检查 Cron 是否正常工作,请访问您的商店,您将看到其中的var/log/cron.log
文本。Example
\HelloWorld\Cron\Test::execute
Magento 2 中 Cron Job 的应用
Magento 的多项功能至少需要一项 Cron Job,它安排未来发生的活动。这些活动的部分列表如下:
- 目录价格规则
- 时事通讯
- 生成 Google 站点地图
- 客户警报/通知(产品价格变化、产品有货)
- 重新索引
- 私人销售(仅限 Magento Commerce)
- 自动更新货币汇率
- 所有 Magento 电子邮件(包括订单确认和交易电子邮件)