amakata / m2-ce-cron
用于替换 Magento 2 Cron 功能的软件包
Requires
- php: >=7.0.0
Suggests
- magento/framework: *
- magento/module-config: *
- magento/module-cron: *
- magento/module-store: *
- dev-master
- 1.3.7.1
- v1.3.7.1-dev
- 1.3.5.4
- v1.3.5.4-dev
- 1.3.5.3
- v1.3.5.3-dev
- 1.3.5.2
- 1.3.5.1
- 1.3.1-stable
- 1.3.0-stable
- 1.2.9-stable
- 1.2.8-stable
- 1.2.7.10-stable
- 1.2.7.9-stable
- 1.2.7.8-stable
- 1.2.7.7-stable
- 1.2.7.4-stable
- 1.2.7.3-stable
- 1.2.7.2
- 1.2.7.1-stable
- 1.2.7-stable
- 1.2.6-stable
- 1.2.5-stable
- 1.2.4-stable
- 1.2.3-stable
- 1.2.2-stable
- 1.2.1-stable
- 1.2.0-stable
- dev-magemojo-1.3-fix-php-8.1
- dev-magemojo-1.3-fix-missing-schedules
- dev-magemojo-1.3-fix-massupdate-bug
- dev-magemojo-1.3.8
- dev-error_scope_wrong
- dev-magemojo-1.3
- dev-magemojo-master
This package is auto-updated.
Last update: 2024-09-19 17:00:48 UTC
README
Cron
本模块用于覆盖 Magento 2 的基础 Cron 功能,修复已知错误,并提供一个 cron 服务模型以控制 cron 进程的执行。
默认的 cron 可能会重叠并填充 cron_schedule 表,这可能导致每个 cron 间隔运行的工作数量呈指数级增加,直到最后 crons 持续运行而永不完成。大量的 cron 作业也可能导致托管 Magento 2 的服务器崩溃。
本模块用接受作业的服务替换了 cron 管理。随着作业的安排,它们将被此服务执行。如果某个作业正在运行,并且另一个作业以相同的作业代码被选中,则新作业将被标记为错过。防止重复作业运行,以减少服务器开销。
将默认的 cron 视为一个突然出现并运行任意数量任务的工厂。如果这些任务在下一个 cron 间隔内未完成,它们将继续处理,但另一个工厂会自发出现并运行另一组作业,这可能与原始工厂重叠。
本模块通过一个单一的服务源来处理作业,以避免作业重叠,该服务按正确顺序处理作业而不重复。有一个工厂始终在工作,以确保您的作业完成。
除了服务模型之外,还进行了许多其他改进。例如,重写了左连接更新语句,该语句强制对 cron_schedule 的历史记录进行全表扫描。语句会锁定,因为它正在从它试图更新的同一表中读取。
在版本 1.1 中,将 Cron 报告添加到管理员界面,以显示作业代码统计信息和 cron 运行错误列表。
贡献
查看 CONTRIBUTING.md。
好处
-
加快 cron 执行速度。
-
停止数据库锁定。
-
防止 cron 历史记录爆炸。
-
停止 cron 进程相互超载。
-
在系统处于可配置负载条件下时停止 cron 运行。
-
设置最大并发 cron 进程数。
-
设置历史记录数量。
管理员选项
Cron 启用 - 打开/关闭 cron。
最大 Cron 进程数 - 并行运行的 cron 线程数。此选项是所有定义的作业的总和。例如:如果您有 5 个作业设置为午夜运行,最大 Cron 进程数设置为 1,则只有 1 个作业会顺序执行,直到所有 5 个都完成。默认 3。
PHP 二进制名称/路径 - 您在 shell 中运行的 php 二进制文件名称。通常为 php 或 php70。您可以可选地包含二进制的完整路径。默认为 php。您还可以在此处添加行内选项,例如 php -dmemory_limit=8096M,如果您想设置自定义的 ini 值。
最大负载平均值 - 由php函数sys.getloadavg() / CPU核心数定义。sys.getloadavg()函数报告每个正在使用的核心为1.0,就像top中报告的负载平均值一样。CPU核心数从/proc/cpuinfo中获取,并将负载平均值除以这个数字。例如:如果您有8个核心且正在使用6个,则返回值为0.75。如果您的最大负载平均值为0.76,则cron作业将不会运行。当您的负载平均值降至0.74时,cron作业将运行。任何预定运行但未运行的cron作业都将运行。如果同一cron多次错过,将运行最近的作业,其余的将被标记为错过。默认值为0.75(您可用CPU的75%)。
历史记录保留 - 在cron_schedule表中保留历史记录的天数。默认1天。
Composer安装
- 请在您的终端中运行以下命令
composer require amakata/m2-ce-cron php bin/magento module:enable MageMojo_Cron php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deploy
-
登录到您的管理员并设置系统 -> Cron设置下的选项
-
如果尚未在此处启用,请启用cron作业:http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-cron.html