在后台运行php进程,完成后发送电子邮件

时间:2014-06-16 18:49:21

标签: php apache openstack

我正在编写一个脚本,允许用户从远程存储库下载vm-images。图像必须从远程存储库(a)下载到本地服务器(b),然后用户可以通过URL链接从该本地服务器(b)下载图像。这是通过对带有url端点的api进行php exec调用来实现的。

我遇到的问题是,从" a"转移图像可能需要一段时间。机器到" b"机。有没有办法在后台执行下载过程。图像传输完成后,用户会收到一封包含文件链接的电子邮件吗?

否则,只要max_execution_time设置允许,用户就会坐在旋转页面上。

我正在寻找at this site for reference,但这并不是非常有用。

编辑:我正在使用LAMP设置

2 个答案:

答案 0 :(得分:0)

Beanstalkd

Beanstalkd是一个守护程序,用于异步处理正在运行的作业,以便在等待任务完成时不会让用户处于挂起状态。它是用Ruby编写的(我认为),但是有许多客户端库可以与它进行交互。

Pheanstalk

Pheanstalk是用于与Beanstalkd集成的PHP库。您可以定义Job类,然后使用此API提交这些作业以进行处理。

大多数主要框架都支持这样的事情。

答案 1 :(得分:0)

您可能想要考虑通过beanstalk启动worker。

http://kr.github.io/beanstalkd/

您发送的邮件包含下载链接和要发送的电子邮件。发送邮件时,可以按需启动工作人员,并自动开始下载。下载完成后,您的工作人员将触发该电子邮件。

允许您与beanstalk接口的PHP库可以在这里找到:

https://github.com/pda/pheanstalk