Magento 2 设置计划任务

后台的计划任务进程在任何大型系统中都很重要。清除缓存和索引最新可以保持系统健康运行,而某些流程只需要及时操作,以避免高系统负载,内存泄漏或某些服务过载(发送大量电子邮件)。为这些过程和应该不时重复的过程设置一个cron计划任务总是一个好办法。在这篇博文中,我们将描述如何将代码的某一部分设置为Magento 2中的cron计划任务。

让我们创建文件,其中包含我们需要执行的代码。它可以随心所欲地调用,并放置在您的扩展中的任何位置。但如果将它放在扩展程序的“Cron”目录中,它看起来会更整洁。它应该如下所示:

建议使用一个单独的类,并将您的逻辑放在与Magento2控制器相似的execute()方法中 – 每个cron文件是一个动作。

接下来,我们需要添加一个配置文件,让Magento2知道在哪里调用cron任务:

 

我们检查crontab.xml参数。计划任务有3个参数:

  • name – cronjob的唯一标识符。将在magento安装的“cron_schedule”数据库表中显示为“job_code”;
  • instance – 应该实例化的类;
  • method – 应该调用的类实例的方法。

“schedule”节点有一个cron表达式,它指定我们的cron作业应该被安排的时间。我们的示例表达式声明应该随时调用它。

节点“组”指定我们的cronjob应该属于的cron任务组。如果我们需要一个自定义组,我们也需要指定它。Magento 2只有框中的“默认”和“索引”组。为了创建我们自己的组,我们需要用另一个配置文件声明它。它被称为cron_groups.xml,应具有以下内容:

 

为cronjobs创建单独的组允许您指定任务计划的时间段并保持cronjobs执行历史记录。cron_groups.xml中指定的参数被设置为该组的默认值,可以从“Stores > Configuration > Advanced > System > Cron (Scheduled Tasks) – 所有时间都以分钟为单位”。如果您检查管理面板,您应该看到新的cron作业组:

最后,您可以尝试通过magento根目录中的bash shell手动安排和运行cronjobs,并仅针对自定义cronjobs组:

 

就这样。我希望这篇文章很有用,可以节省你一些时间。谢谢阅读!

 

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: Magento 2 创建购物车价格规则并且自动生成优惠券代码

下一篇: Magento 2的命令行CLI脚本

登录 评论
avatar