情况:我有一个包含任务的表(需要以不同的间隔运行)和两个php脚本(initator.php&worker.php)。cron每分钟运行一次启动器脚本,时间间隔与任务一起存储在一列中。发起程序脚本应检查哪些任务应发送到工作程序脚本。所以问题是:我如何确定哪些任务需要在当前时刻运行?我尝试了一个'next'列(mysql timestamp),启动器脚本检查下一列是否与当前日期匹配,但我认为这不是一个好的解决方案,因为延迟和执行时间。
jecbmhm31#
我不明白你为什么认为“下一个”是个坏主意。一个关键问题是解决方案需要多大的可伸缩性。如果你能证明你永远不会有超过20条记录,那么读取每一条任务记录并计算下一个计划时间/检查它是否在某个特定的窗口内并不太繁重。但当你看到数百张唱片时,情况就完全不同了。在没有下一个计划执行时间属性的情况下,无法创建dbms可以使用的索引。
1条答案
按热度按时间jecbmhm31#
我不明白你为什么认为“下一个”是个坏主意。
一个关键问题是解决方案需要多大的可伸缩性。如果你能证明你永远不会有超过20条记录,那么读取每一条任务记录并计算下一个计划时间/检查它是否在某个特定的窗口内并不太繁重。但当你看到数百张唱片时,情况就完全不同了。在没有下一个计划执行时间属性的情况下,无法创建dbms可以使用的索引。