0

我有一个 php 文件,例如http://domain.com/user?id=uniquetoken,当用户使用唯一令牌访问该 url 时,它会使用 javascript 和 php 做很多事情,完成某项任务至少需要 2 分钟。如果用户没有耐心并关闭该任务的窗口根本不执行,我需要的是当用户刚刚访问时http://domain.com/user?id=token,任务必须在后台完成。所以即使用户关闭窗口,任务也应该由后端的 php 完成,

我有一些想法,例如 file_get_contents,这会完全完成任务吗?有什么想法或建议吗?

编辑:有人告诉我file_get_contents(http://domain.com/user?id=token),另一个 php 文件是否有效?即使他们立即关闭它?我已启用 ignore_user_abort().

4

2 回答 2

0

您可以将所有这些 url 保存在某个地方、文件或数据库中,并使用 cron 运行所有这些链接。如果用户没有退出页面并且任务完成 - 从存储中删除链接。

于 2012-10-11T18:13:17.887 回答
0

当用户访问时,只需在要运行的 php 脚本上http://domain.com/user?id=token调用一个。exec()

如果使用此函数启动程序,为了使其继续在后台运行,程序的输出必须重定向到文件或另一个输出流。一旦exec()启动输出重定向,即使用户关闭浏览器,它也会继续在服务器中执行。

于 2012-10-11T18:14:31.573 回答