更多信息
是的,我正在使用symfony / php处理大型网络项目(工资单)。当工资单用户到达时,它需要在每个月处理,然后单击流程按钮。那么工资单应该在没有apache服务器超时的情况下处理。为此,我希望能够在后台运行异步Web服务。
答案 0 :(得分:6)
评论员说,你应该使用CRON job,因为它最适合这类问题。但是,您需要通过单击用户来启动作业。这是我使用的:
答案 1 :(得分:2)
看看this article。根据您正在做的事情,这可能比CRON工作要好得多,更具体地说,如果您想立即采取行动 。 CRON作业限制为最多运行,每分钟一次,通过这种方法,您可以立即开始在后台处理请求。
// this script can run forever
set_time_limit(0);
// tell the client the request has finished processing
header('Location: index.php'); // redirect (optional)
header('Status: 200'); // status code
header('Connection: close'); // disconnect
// clear ob stack
@ob_end_clean();
// continue processing once client disconnects
ignore_user_abort();
ob_start();
/* ------------------------------------------*/
/* this is where regular request code goes.. */
/* end where regular request code runs.. */
/* ------------------------------------------*/
$iSize = ob_get_length();
header("Content-Length: $iSize");
// if the session needs to be closed, persist it
// before closing the connection to avoid race
// conditions in the case of a redirect above
session_write_close();
// send the response payload to the client
@ob_end_flush();
flush();
/* -------------------------------------------*/
/* code here runs after the client disconnect */