为什么discuz这个功能计划任务功能不用事件调度呢?
程序员文章站
2022-05-22 10:40:39
...
我到了指定时间观察数据库发现指定数据没有变化,也就是计划任务没执行,我听说打开页面才执行,我就服了 为什么这个团队不用事件调度呢?
回复内容:
我到了指定时间观察数据库发现指定数据没有变化,也就是计划任务没执行,我听说打开页面才执行,我就服了 为什么这个团队不用事件调度呢?
你这是两个问题:
Discuz没执行计划任务
Discuz的开发团队不用事件调度
第一个问题,应该说如果你的网站没有任何用户访问,那有可能确实不执行,毕竟Discuz的计划任务是触发执行的。至于如何解决,建议找一下类似这样的帖子,有可能是升级或者装插件导致的。
第二个问题,应该是Discuz的设计思路决定的,我猜它的设计思路是希望用最基本的php和mysql就能完成主要功能,所以设计的时候没有考虑用事件调度。
因为他要考虑用户使用的是空间
虚拟主机没有crontab权限,技术从来都是在限制条件下做权衡的。
这个功能我觉得可能是:
将配置写入一个随机命名的文件,然后php忽略用户关闭,死循环一直跑到点就执行,如果发现配置文件不存在了,就退出。