是否可以在Shopware中每个午夜运行一个计划任务



我们已经阅读https://developer.shopware.com/docs/guides/plugins/plugins/plugin-fundamentals/add-scheduled-task描述了如何定义每x分钟运行一次的调度任务。

是否也可以指定执行时间,例如每个午夜或每天凌晨2点,就像在crontab中一样?

在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点(根据我的经验,+-几分钟(。

我不知道Shopware核心中有这样的功能
可能最直接的方法是添加一个";真实的";像您提到的cronjob,它触发CLI命令
您可以将任务的逻辑封装在它自己的服务中,以便scheduled task和cli命令都可以使用该服务(如果您希望保留两者(。

最新更新