下面是下面的内容:
我正在为其开发的客户端在HostGator上,它将他们的max_execution_time限制在30秒以内,不能被覆盖(我已经尝试过,并且确认它不能通过他们的支持和wiki实现)
我的代码所做的是获取一个上传的文件和.
现在,我是否可以以某种方式排队或将工作负载分成多个文件?我知道代码运行得完美无缺,并在插入之前检查每一项是否存在,但我不得不绕开execution_limit。
如果您有任何问题,请告诉我!
发布于 2012-05-10 04:21:14
timelimit仅在通过when服务器执行PHP脚本时有效,如果您从CLI或作为后台进程执行该脚本,它应该可以正常工作。
请注意,如果您不够小心,执行外部脚本是有点危险的,但它是一个有效的选项。
检查下列资源:
过程控制扩展
具体而言:
pcntl-exec
多头叉
发布于 2012-05-10 04:16:37
您知道您可以通过注册一个关闭处理程序来欺骗max_execution_time吗?在该代码中,您可以再运行30秒;-)
好了,现在有更多有用的东西。
您可以在数据库中添加一个小队列表,以便在脚本中途死亡时跟踪您所在的位置。
为此,您需要多次请求该URL;也许可以使用JavaScript来继续重新加载,直到工作完成为止?
发布于 2013-12-01 10:23:44
我在这种情况下。我的方法和杰克的方法很相似
register_shutdown_function)对于这个任务,我做了两个模块,导入用于实际处理;TaskManagement用于处理这些任务。
对于调用TaskManager,我使用CRON,这取决于you主机提供给您的内容,如果足够的话。还有一个WebCron。
Jack的JavaScript方法的优点是它只在需要时添加请求。如果没有要执行的任务,那么脚本运行时将非常短,而且可能被高估了*,但仍然如此。缺点是它要求用户一直等待,而不是关闭标签/浏览器、JS支持等等*)在这种时刻,可能比1点点击1次要求小得多。
然后,当然查看性能改进、缓存、跳过不需要/尚未更改的内容等等。
https://stackoverflow.com/questions/10527272
复制相似问题