我有一个奇怪的问题。 我有一个只在我们的网络服务器上运行的PHP脚本,只要在数据库中放入新的处理作业,它就会处理大量数据。 处理大约需要1-5分钟。
我所做的是运行PHP脚本,检查是否有与数据库中的未完成的工作,而这个页面使用下面的HTML头刷新每5秒:
<meta http-equiv="refresh" content="5">
服务器只运行此脚本,以便自动获取。 问题是:有时,当服务器忙时,它抛出一个内部错误500这意味着,页面停止加载的,将不再刷新(即使几秒钟后,它会再次可用)
我怎样才能最好地解决这个问题? 我考虑过让阿贾克斯与他们的投票系统做到这一点,问题是,处理作业需要几分钟的时间,如果有碰巧有几个在同一时间处理作业,它会开始做他们都在同一时间,这我们不想要。我甚至不知道当Ajax再次开始刷新时是否会停止加载页面,因此无法完成脚本。
如果在数据库中创建新作业时有替代方法可以运行PHP脚本,我也很想知道。
答案 0 :(得分:3)
使用cron
运行您的脚本。不要通过Web浏览器运行它。甚至不要通过Web服务器运行它。