javascript - 通过 Web 客户端触发后台任务而不丢失会话
问题描述
我有一个 webapp,它应该运行需要时间才能完成的资源密集型任务(功能)。我通过调用 url 来触发这个任务;
http://app.domain.com/process_file/@fileid
但是,正如预期的那样,Web 客户端等待任务(函数)完成。这很可能导致超时。
请建议我可以触发任务并让用户继续导航 web 应用程序的方法。
到目前为止,我已经尝试过以下方法;
1. JQuery/ajax
2. Redirecting to a _blank page
注意:我无法访问 crontab 或调度程序。我正在使用 PHP、JavaScript 和无脂肪框架
解决方案
我相信您正在寻找中止功能:
function (Base $f3) {
// process request and send response to client (could be a redirect status)
$f3->abort(); // disconnect the client
// perform consuming task here
}
这基本上是 Pavel Třupek 建议的解决方案,为方便起见包装在一个方法中。