Laravel队列作业在没有任何队列的情况下自动处理:工作或侦听命令



我在控制器上排队1分钟后运行作业,作业正确显示在"作业"表中,但根据文档,我必须运行php-artisan queue:work以执行作业,但在我的情况下,它们在Ubuntu服务器(AWS ec2)上无需任何命令即可执行。同样,这些作业会进入失败作业表,因为它们正在读取我之前更改的控制器的一些旧代码。注意:如果我运行php artisan queue:work,那么一些作业会被它处理,并使用新代码执行而不会生成任何错误,而一些作业则由未知的后台进程执行并生成旧代码错误

php arisan列表结果"root@ip-172-31-30-76:/var/www/html#php手工列表Laravel框架5.5.32用法:命令[选项][参数]选项:-h、 --help显示此帮助消息-q、 --quiet不输出任何消息-V、 --version显示此应用程序版本--ansi强制ansi输出--no ansi禁用ansi输出-n、 --没有互动不要问任何互动问题--env[=env]命令应该运行的环境-v|vvvv,--verbose增加消息的详细程度:1用于正常输出,2用于更详细的输出,3用于调试可用命令:清除已编译删除已编译的类文件down将应用程序置于维护模式env显示当前框架环境help显示命令的帮助list列出命令migrate运行数据库迁移优化优化框架以获得更好的性能(已弃用)预设将前端脚手架换成应用程序serve在PHP开发服务器上服务应用程序修补程序与应用程序交互up使应用程序脱离维护模式应用程序app:name设置应用程序命名空间authauth:clear重置刷新过期的密码重置令牌隐藏物cache:清除刷新应用程序缓存cache:forget从缓存中删除项目cache:table为缓存数据库表创建迁移配置config:cache创建一个缓存文件以更快地加载配置config:clear删除配置缓存文件客户解决方案customSolutions:sportsplus此命令用于执行自定义解决方案数据表datatables:make创建一个新的DataTable服务类。datatables:scope创建一个新的DataTableScope类。数据库db:seed为数据库添加记录委托trust:migration按照entrust规范创建迁移。事件event:generate基于注册生成缺少的事件和侦听器进口import:SyncOrders从不同渠道导入订单钥匙key:generate设置应用程序密钥制作make:auth-Sscaffold基本登录和注册视图及路由make:命令创建新Artisan命令make:controller创建一个新的控制器类make:event创建一个新的事件类make:exception创建新的自定义异常类make:factory创建一个新的模型工厂make:job创建新作业类make:listener创建一个新的事件listener类make:mail创建一个新的电子邮件类make:middleware创建一个新的中间件类make:migration创建新的迁移文件make:model创建一个新的Eloquent模型类make:notification创建一个新的通知类make:policy创建新的策略类make:provider创建一个新的服务提供程序类make:request创建一个新的表单请求类make:resource创建新资源make:rule创建新的验证规则make:seeder创建一个新的seeder类make:test创建一个新的测试类迁徙migrate:fresh删除所有表并重新运行所有迁移迁移:安装创建迁移存储库migrate:刷新重置并重新运行所有迁移migrate:重置回滚所有数据库迁移migrate:rollback回滚上次数据库迁移migrate:status显示每次迁移的状态通知notifications:table为notifications表创建迁移包裹package:discover重建缓存的包清单队列queue:failed列出所有失败的队列作业queue:失败的表为失败的队列作业数据库表创建迁移queue:flush刷新所有失败的队列作业queue:forget删除失败的队列作业queue:侦听给定的队列queue:重新启动在当前作业之后重新启动队列工作进程守护进程queue:retry重试失败的队列作业queue:table为队列作业数据库表创建迁移queue:work作为守护进程开始处理队列上的作业路线route:cache创建一个路由缓存文件以加快路由注册route:clear删除路由缓存文件管线:列表列出所有注册的管线日程计划:运行运行计划的命令一场session:table为会话数据库表创建迁移存储storage:link创建从"public/storage"到"storage/app/public"的符号链接小贩vendor:发布发布供应商包中的任何可发布资产看法视图:清除清除所有已编译的视图文件"cront-l的结果****php/var/www/html/artisan schedule:run>>/var/www/html/logs.txt 2>&1

如果队列连接仍设置为默认值(sync),则可能发生这种情况。如果您使用的是Laravel 5.7或更高版本,请检查.env文件并确保您拥有以下内容:

QUEUE_CONNECTION=database

请注意,在Laravel 5.7中,QUEUE_DRIVER更改为QUEUE_CONNECTION:https://laravel.com/docs/5.7/upgrade

我遇到了同样的问题,我通过重新启动Redis解决了这个问题。
用于帮助的命令
sudo systemctl stop redis
sudo systemctl start redis

最新更新