我有个laravel应用程序。我使用每4小时运行一次的cronjob,导入csv文件并保存在数据库中。
我有有限的时间(300秒最大执行时间,60秒cpu时间)。导入脚本应该导入大量csv文件(400+)。
有没有办法在时间耗尽之前中断并再次调用导入脚本?或者我如何才能解决这个问题,这样才能安全地导入文件?
发布于 2016-09-28 21:50:50
如果您想要保证流程的完成,那么最好的解决方案可能是使用非重叠任务调度。您可以在文档中阅读有关它的所有内容:
https://laravel.com/docs/5.2/scheduling#preventing-task-overlaps
事实上,它仍然是一个cronjob,但Laravel会在内部确保一次只运行一个进程。因此,您仍然可以(例如)将其安排为每分钟运行一次,以便它在结束后立即重新启动。在您的情况下,将其安排为每4小时运行一次,而不会有在前一次运行尚未完成时重新启动的风险。
https://stackoverflow.com/questions/39743171
复制相似问题