我是PHP新手,所以我需要一些指导,以解决以下问题最简单和/或最优雅的解决方案:
我正在开发一个项目,其中有一个包含多达500,000条记录的表,在用户指定的时间段内,必须启动一个后台任务,它将在服务器上调用命令行应用程序来完成魔术,问题是,每1分钟左右,如果需要做的话,我需要检查所有500,000条记录(并计算)。
正如标题所说,它是时间关键的,这意味着在用户期望的时间和执行任务的时间之间可以允许最多1分钟的延迟,当然延迟越少越好
到目前为止,我只能想到一个非常脏的选项,有一个在服务器上运行的简单实用程序应用程序,每分钟都会向服务器发出多个请求,例如:
并且服务器基本上为每个100,000或更少的记录开始一个任务,但在我看来,必须有一个更快的方法,类似于facebook的通知。
其他信息:
编辑1
任何建议都非常感谢!
答案 0 :(得分:1)
最简单的方法是使用一直运行的持久性任务,并接收有关需要处理的记录的通知。然后它可以立即处理它们,或者如果它需要在某个时间处理,它可以睡觉直到达到该时间或另一个通知到达。
答案 1 :(得分:0)
我想我已经给了这个问题足够的时间,我将坚持一个实用程序应用程序(位于服务器上),它将只能从服务器的IP访问URL请求,这将为每个任务生成一个新线程如果需要同时执行多个任务,那么它实际上不是可扩展的,但现在必须要做。