(在浏览器关闭后让进程运行直到完成)

时间:2017-06-16 06:39:33

标签: php mysql apache cron gearman

我有一个网站,使用PHP创建并在Apache上运行。我希望订阅者能够登录并在服务器上启动进程。然后,他们可以在不中断流程的情况下注销或关闭浏览器。之后,他们可以登录并查看进度或查看原始流程的结果。实现这一目标的最佳方法是什么(在浏览器关闭后让流程运行直到完成)?

只是找人帮我指明正确的方向。有几个人提到了Gearman。

1 个答案:

答案 0 :(得分:0)

Gearman将是理想的候选人,我会将其用于您描述的目的。它具有开箱即用的所有功能,可满足您的要求(“背景”是一个长时间运行,CPU绑定到另一台机器的过程,例如视频编码)。

有一个Gearman PHP library,但如果它更适合做这项工作,你可以用不同的语言编写工人代码。

为了报告进度信息,我建议让工作人员写入RedisMemcached - 您的网络服务器也可以访问的某种临时存储。

查看Gearman网站上的简单PHP example。为了便于学习,我建议设置一个包含3个独立VM的实验室环境,一个用于Web服务器(客户端),一个用于Gearman作业队列(服务器),另一个用于处理作业(工作者)。