我有这个过程设置。
php artisan queue:work beanstalkd --sleep=3 --tries=1 --timeout=0 --queue=medium,messages
我还有一份工作要做
public $timeout = 100000000;
但是,在使用第一次运行的message has been attempted too many times or run too long. The job may have previously timed out
之前,作业就已经停止了。
我在php.ini里也有这个
max_execution_time = 0
我在这里错过了什么?
发布于 2019-11-22 07:40:30
控制台
我想从命令行执行的事情(正如您在工作中提到的那样,会创造更多的工作机会)。但问题是,您可以将其业务逻辑提取到命令中。
示例:一个控制台命令,它会触发一个命令,从Imgur获取图像。类FetchImages
包含获取图像的实际业务逻辑。
命令
类,该类包含实际逻辑。您还应该能够使用app()->make(Command::class)->handle()
从应用程序中调用此命令。
示例:示例1中提到的命令。包含逻辑,它执行对Imgur的实际API调用,并处理返回的数据。
工作
拉勒维尔5.0,所以jobs
不是当时的一件事。但在我看来,乔布斯就像命令,但它们是排队的,可以被分派。(正如您在这些示例中可能看到的,这些命令实现了所提到的接口SelfHandling
和ShouldBeQueued
)。
我看到Commands
和Jobs
中的变化是很难理解的。
编辑:来自Laravel Docs:
app/Command目录已被重命名为app/Jobs。但是,不需要将所有命令移动到新位置,您可以继续使用make:命令和处理程序:命令Artisan命令来生成类。 类似地,app/Handler目录已被重命名为app/Listeners,现在只包含事件侦听器。但是,不需要移动或重命名现有的命令和事件处理程序,您可以继续使用处理程序: event命令来生成事件处理程序。 通过为Laravel5.0文件夹结构提供向后兼容性,您可以将应用程序升级到Laravel5.1,并在方便时将事件和命令缓慢升级到它们的新位置。
https://stackoverflow.com/questions/58987627
复制相似问题