所以我在Synology NAS上运行了这个数据库,用于一个用Laravel制作的餐厅应用程序,我在这里有这个活动,应该每天凌晨4点开始
这次活动的内容没有什么特别之处:
UPDATE shipping_times SET shipping_times.available = shipping_times.max_quantity
问题是,每天晚上午夜,事件调度程序变量自动设置为OFF,即使我执行GLOBAL event_scheduler=ON。
这是一个相当大的问题;补充";可用订单。
由于我的活动应该在凌晨4点举行,我认为问题与活动无关。
可能是什么?
备选方案:Laravel任务调度
相反,Laravel的任务是为了解决这个问题:https://laravel.com/docs/8.x/scheduling
(也有其他Laravel版本的文档(
以这种方式添加重复任务可以将它们全部放在一个位置,而不是隐藏在菜单中的某个位置。它们也独立于你难以捉摸的event_scheduler
。
您也可以使用命令并从任务调度代码中调用它。参见BKF的评论。
你的活动开始了吗
我不确定,但只有在00:00到04:00之间总是有流量的情况下,事件才会启动,这是真的吗?Laravel任务也在事后开火,AFAIK。
将其添加到my.cnf(或配置文件的服务器(:
event_scheduler = ON
并重新启动mysqld。
显然,每天晚上都有什么东西在关闭MySQL,也许是备份?上述设置将在每次重新启动时将其打开。