是否可以在 Shopware 中每个午夜 运行 计划任务?
Is it possible to run a scheduled task each midnight in Shopware?
我们已阅读 https://developer.shopware.com/docs/guides/plugins/plugins/plugin-fundamentals/add-scheduled-task,其中描述了如何定义每 x 分钟运行一次的计划任务。
是否也可以指定执行时间,例如每个午夜或每天凌晨 2 点,就像在 crontab 中一样?
我不知道 Shopware 核心中有这样的功能。
可能最直接的方法是像您提到的那样添加一个“真正的”cronjob,它会触发 CLI-command.
您可以将任务的逻辑封装在它自己的服务中,这样计划任务和cli-command都可以只使用该服务(如果您想同时保留两者)。
Shopware 6 中没有这种可能性。使用 CLI 命令和 crontab 更容易完成此操作。但是如果你必须使用 Shopware 的计划任务,那么你可以通过将 nextExecutionTime
设置为你想要执行任务的时间来欺骗它。
例如,如果今天的日期是 2022 年 3 月 10 日,并且您想每天凌晨 2 点执行计划任务,则将 nextExecutionTime
设置为 2022-03-11 00:02:00.000
(使用未来日期)和 runInterval
到 86400
(24 小时)。这样 Shopware 将在凌晨 2 点开始任务,然后将 nextExecutionTime
设置为第二天凌晨 2 点(根据我的经验 +- 几分钟)。
我们已阅读 https://developer.shopware.com/docs/guides/plugins/plugins/plugin-fundamentals/add-scheduled-task,其中描述了如何定义每 x 分钟运行一次的计划任务。
是否也可以指定执行时间,例如每个午夜或每天凌晨 2 点,就像在 crontab 中一样?
我不知道 Shopware 核心中有这样的功能。
可能最直接的方法是像您提到的那样添加一个“真正的”cronjob,它会触发 CLI-command.
您可以将任务的逻辑封装在它自己的服务中,这样计划任务和cli-command都可以只使用该服务(如果您想同时保留两者)。
Shopware 6 中没有这种可能性。使用 CLI 命令和 crontab 更容易完成此操作。但是如果你必须使用 Shopware 的计划任务,那么你可以通过将 nextExecutionTime
设置为你想要执行任务的时间来欺骗它。
例如,如果今天的日期是 2022 年 3 月 10 日,并且您想每天凌晨 2 点执行计划任务,则将 nextExecutionTime
设置为 2022-03-11 00:02:00.000
(使用未来日期)和 runInterval
到 86400
(24 小时)。这样 Shopware 将在凌晨 2 点开始任务,然后将 nextExecutionTime
设置为第二天凌晨 2 点(根据我的经验 +- 几分钟)。