Laravel 队列作业会自动处理,无需任何队列:工作或监听命令

Ali*_*mza 2 queue scheduling laravel

我正在对作业进行排队,以便在 1 分钟后从控制器运行,并且作业正确显示在“作业”表中,但根据文档,我必须运行 php artisanqueue:work 才能执行作业,但在我的情况下,它们是在没有任何命令的情况下执行的在 Ubuntu 服务器 (AWS ec2) 上。这些作业也会进入失败的作业表,因为它们正在读取我之前更改的控制器的一些旧代码。注意:如果我运行 php artisanqueue: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, --no-interaction 不要问任何交互式问题
      --env[=ENV] 命令应运行的环境
  -v|vv|vvv, --verbose 增加消息的详细程度:1 表示正常输出,2 表示更详细的输出,3 表示调试

可用命令:
  clear-compiled 删除已编译的类文件
  down 将应用程序置于维护模式
  env 显示当前框架环境
  help 显示命令的帮助
  list 列出命令
  migrate 运行数据库迁移
  优化框架以获得更好的性能(已弃用)
  预设 为应用程序交换前端脚手架
  在 PHP 开发服务器上提供应用程序服务
  Tinker 与您的应用程序交互
  up 将应用程序退出维护模式
 应用程序
  app:name 设置应用程序命名空间
 授权
  auth:clear-resets 刷新过期的密码重置令牌
 缓存
  cache:clear 刷新应用程序缓存
  cache:forget 从缓存中删除一个项目
  cache:table 为缓存数据库表创建迁移
 配置
  config:cache 创建缓存文件以加快配置加载速度
  config:clear 删除配置缓存文件
 定制解决方案
  customSolutions:sportsplus 该命令用于执行自定义解决方案
 数据表
  datatables:make 创建一个新的DataTable服务类。
  datatables:scope 创建一个新的 DataTable Scope 类。
 D b
  db:seed 用记录为数据库添加种子
 委托
  entrust:migration 按照 Entrust 规范创建迁移。
 事件
  event:generate 根据注册生成缺少的事件和监听器
 进口
  import:SyncOrders 从不同渠道导入订单
 钥匙
  key:generate 设置应用程序密钥
 制作
  make:auth Scaffold 基本登录和注册视图和路由
  make:command 创建一个新的 Artisan 命令
  make:controller 创建一个新的控制器类
  make:event 创建一个新的事件类
  make:exception 创建一个新的自定义异常类
  make:factory 创建一个新的模型工厂
  make:job 创建一个新的作业类
  make: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:install 创建迁移存储库
  migrate:refresh 重置并重新运行所有迁移
  migrate:reset 回滚所有数据库迁移
  migrate:rollback 回滚上次数据库迁移
  migrate:status 显示每次迁移的状态
 通知
  notification:table 为通知表创建迁移
 包裹
  package:discover 重建缓存的包清单
 队列
  queue:failed 列出所有失败的队列作业
  queue:failed-table 为失败的队列作业数据库表创建迁移
  queue:flush 刷新所有失败的队列作业
  queue:forget 删除失败的队列作业
  queue:listen 监听给定队列
  queue:restart 在执行当前作业后重新启动队列工作守护进程
  queue:retry 重试失败的队列作业
  queue:table 为队列作业数据库表创建迁移
  queue:work 作为守护进程开始处理队列上的作业
 路线
  路由:缓存 创建路由缓存文件以加快路由注册速度
  Route:clear 删除路由缓存文件
  Route:list 列出所有已注册的路由
 日程
  Schedule:run 运行计划的命令
 会议
  session:table 为会话数据库表创建迁移
 贮存
  storage:link 创建从“public/storage”到“storage/app/public”的符号链接
 小贩
  vendor:publish 发布供应商包中的任何可发布资源
 看法
  view:clear 清除所有已编译的视图文件
”
cront -l 的结果

* * * * * php /var/www/html/artisan Schedule:run >> /var/www/html/logs.txt 2>&1

小智 5

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

QUEUE_CONNECTION=database
Run Code Online (Sandbox Code Playgroud)

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