我没有太多运行大型网站的经验,但我正在开发一个项目,要求服务基本上不间断运行。该服务将通过API收集信息,并且由于我收集的数据量,它必须每4小时左右运行400个请求。
在我使用cron作业运行执行必要功能的php脚本之前,我不确定这是否是处理这些请求的有效方法。
大型网站使用什么来解决这类问题?
我能想到的最好的事情是创建一个不间断运行的自定义应用程序。还有其他解决方案吗?
我将使用Linux服务器,我有哪些选项,是否需要专用服务器?
答案 0 :(得分:0)
您需要使用Apache样式的Pre-Forked模型,其中您有一个管理N个工作进程的管理程序进程,并处理SIGCHLD等。子进程将连接到作业队列,并阻止等待工作给予他们。
作业队列通常类似于redis队列,您可以向其抽取作业数据。
完成的工作通常通过与jobid不同的队列反馈,然后由一个单独的任务收集并完成“一些工作”(将结果保存到某处,将结果传递到不同的队列以执行不同的工作等等。)
见http://python-rq.org/docs/& http://gearman.org/作为示例框架。