2017-08-08 106 views
1

我在我的Laravel项目有问题后,我试图转码的视频文件FFMPEG450MB大小并且由于该走long我使用Laravel中的队列来执行此操作。Laravel数据库队列,“杀”几秒钟

由于我必须使用数据库队列的问题是,排队的工作得到每次随时随地我在流浪框中使用的命令php artisan queue:work约60秒后杀死了我的生产环境的配置。

Vagrant盒具有4GB可用RAM,启用2D和3D加速,并且memory_peak_usage()命令在整个过程中从未列出超过20MB的任何内容。

我检查了php_sapi_name(),它的CLI如预期,因此不应该在当它涉及到执行时间所有的任何限制,无论我去到CLI 的php.ini文件并删除任何限制再确定。

尝试重新引导流浪者,得到几秒钟后杀死无论如何。

,所以我决定尝试转码过程创建一个Laravel 命令,我硬编码的文件路径和东西,你瞧它的工作而不被 ...

我失去了一些有关队列?我只是运行php artisan queue:work我没有指定任何类型的超时,为什么我的队列被杀了?

非常感谢您的帮助。

+0

你用'--timeout'参数试过吗? – Ali

+0

@Ali这是一个问题,我不希望**任何**超时,所以介绍一个会破坏我的应用程序,因为ffmpeg可以轻松地花费1-2小时来完成视频处理。 我确实在Laravel文档上看到,'--timeout'选项会优先于cli上的常规超时...也许如果我为我的用例设置了一个很大的选项,那么可能会解决,但它仍然是讨厌的并没有很大的意义。 –

回答

1

作业的默认超时时间为60秒,正如您发现的那样。超时通过--timeout[=TIMEOUT]属性指定,完全禁用超时是通过--timeout=0完成的。

php artisan queue:work --timeout=0