Magento 2加载了很多很棒的功能,而Cron Job是其中最有用的功能之一。Cron是一个基于时间的调度程序,在Magento 2中使用预定的时间和日期自动运行命令很有用。

为什么要配置Magento 2 Cron Job?

Cron是Magento 2中最重要的部分之一。您可以通过cron安排多项活动,如下所示:

  • 生成Google站点地图
  • 新闻邮件
  • 重建索引
  • 目录价格规则
  • 客户提醒和通知。
  • 私人销售(仅限Magento企业版)
  • 所有Magento电子邮件包括订单确认和交易。
  • 自动更新货币汇率

有关更多详细信息,您可以查看有关Cron Job 的官方文档

如何配置Magento 2 Cron Job?

今天,我将指导您如何用自定义模块在Magento中设置Cron Job 。我希望你已经在Magento 2中创建了一个自定义模块。所以,让我们开始吧!

创建crontab.xml

app/code/Alwayly/Mymodule/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 name="cron_name" instance="Magenticians\Mymodule\Cron\Run" method="execute">
<schedule>*/1 * * * *</schedule>
</job>
</group>
</config>

在上面的代码中,我设置了一分钟的计划。我已将组ID设为default和 job name设置为cron_name,您可以根据需要更改它们。

创建Run.php

首先,在自定义模块中创建目录Cron,因此,目录现在将如下所示:app/code/Alwayly/Mymodule/Cron。现在在app/code/Alwayly/Mymodule/Cron中创建Run.php文件并将以下代码粘贴到其中:

<?php
namespace Magenticians\Mymodule\Cron;

class Run 
{
   protected $_logger;
   public function __construct(
       \Psr\Log\LoggerInterface $logger
   ) 
    {
     $this->_logger = $logger;
    }

   public function execute()
   {
       //Edit it according to your requirement
       $this->_logger->debug('Cron run successfully');
       return $this;
   }
}

运行Magento 2 Cron Job

使用SSH连接您的服务器并转到Magento 2的根目录。现在运行以下命令:

php bin/magento cache:flush
php bin/magento cron:run

您还可以通过此命令仅为一个组运行Cron Job:

php bin/magento cron:run --group="your_group_name"

要检查Cron是否正常工作,请转到网站的var/log/debug.log,您将看到文本Cron run successfully。转到数据库的cron_schedule表,您将看到其中包含您的Cron Job名称的新条目。

Cron Job对于Magento 2商店非常重要,通过它可以安排和自动化其活动来节省您的时间。遵循本指南后,我希望您现在能够在Magento 2中轻松设置Cron Job。如果您仍有任何问题或想要讨论与Magento 2 Cron Job相关的内容,可以联系我们!