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