所以这是低点:
我正在开发的客户端是HostGator,它将max_execution_time限制为30秒并且无法覆盖(我已经尝试并确认它不能通过他们的支持和维基)
我所做的代码就是上传文件......
现在有什么方法我可以以某种方式排队或将工作负载分成多个文件?我知道代码完美无瑕地工作,并在插入之前检查每个项目是否存在,但是我无法绕过execution_limit。
如有任何建议,请与我们联系。
答案 0 :(得分:2)
您是否知道可以通过注册关机处理程序欺骗max_execution_time
?在该代码中,您可以再运行30秒; - )
好的,现在换一些更有用的东西。
您可以在数据库中添加一个小型队列表,以便在脚本中途死亡的情况下跟踪您的位置。
为此,您需要多次请求该URL;也许使用JavaScript来继续重新加载直到工作完成?
答案 1 :(得分:2)
时间限制仅在通过Web服务器执行PHP脚本时有效,如果您从CLI执行脚本或作为后台进程,它应该可以正常工作。
请注意,如果您不够谨慎,执行外部脚本会有些危险,但这是一个有效的选项。
检查以下资源:
具体而言:
答案 2 :(得分:0)
我处于这样的境地。我的方法类似于杰克的
register_shutdown_function
)对于任务我做了两个模块,导入实际处理;任务管理处理这些任务。
对于调用TaskManager我使用CRON,现在这取决于webhosting提供给你的东西,如果它足够了。还有一个WebCron。
Jack的JavaScript方法的优点是它只在需要时添加请求。如果没有要执行的任务,脚本运行时将非常短并且可能被夸大了*,但仍然如此。缺点是需要用户一直等待,而不是关闭标签/浏览器,JS支持等。 *)在这样的时刻,点击1个用户的要求可能要低得多
然后当然要考虑性能改进,缓存,跳过不需要/没有改变等等。