Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel horizon:没有明显原因,物品不再排队_Laravel_Redis_Laravel Queue_Laravel Horizon - Fatal编程技术网

Laravel horizon:没有明显原因,物品不再排队

Laravel horizon:没有明显原因,物品不再排队,laravel,redis,laravel-queue,laravel-horizon,Laravel,Redis,Laravel Queue,Laravel Horizon,我一直在Laravel伪造配置服务器上运行应用程序。 我们有一些电子邮件作业正在排队,我们使用Horizon来管理队列。这一直没有任何问题,但由于某种原因,我们破坏了一些东西,我无法修复它 这是我们的设置 .env APP_ENV=dev REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 QUEUE_DRIVER=redis config/queues.php return [ 'default' => env('Q

我一直在Laravel伪造配置服务器上运行应用程序。 我们有一些电子邮件作业正在排队,我们使用Horizon来管理队列。这一直没有任何问题,但由于某种原因,我们破坏了一些东西,我无法修复它

这是我们的设置

.env

APP_ENV=dev
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
QUEUE_DRIVER=redis
config/queues.php

 return [
   'default' => env('QUEUE_DRIVER', 'sync'),
   'connections' => [
     'sync' => [
       'driver' => 'sync',
     ]
     'redis' => [
       'driver' => 'redis',
       'connection' => 'default',
       'queue' => 'medium',
       'retry_after' => 90,
     ],
  ],
];
return [
  'use' => 'default',
  'waits' => [
    'redis:default' => 60,
  ],
  'environments' => [
    'dev' => [
      'high-prio' => [
        'connection' => 'redis',
        'queue' => ['high'],
        'balance' => 'simple',
        'processes' => 10,
        'tries' => 5,
      ],
      'default-prio' => [
        'connection' => 'redis',
        'queue' => ['medium', 'low'],
        'balance' => 'auto',
        'processes' => 10,
        'tries' => 3,
      ],
    ],
  ],
];
config/horizon.php

 return [
   'default' => env('QUEUE_DRIVER', 'sync'),
   'connections' => [
     'sync' => [
       'driver' => 'sync',
     ]
     'redis' => [
       'driver' => 'redis',
       'connection' => 'default',
       'queue' => 'medium',
       'retry_after' => 90,
     ],
  ],
];
return [
  'use' => 'default',
  'waits' => [
    'redis:default' => 60,
  ],
  'environments' => [
    'dev' => [
      'high-prio' => [
        'connection' => 'redis',
        'queue' => ['high'],
        'balance' => 'simple',
        'processes' => 10,
        'tries' => 5,
      ],
      'default-prio' => [
        'connection' => 'redis',
        'queue' => ['medium', 'low'],
        'balance' => 'auto',
        'processes' => 10,
        'tries' => 3,
      ],
    ],
  ],
];
我检查了redis cli信息结果以确保端口正确:

forge@denja-dev:~$ redis-cli info
# Server
redis_version:3.2.8
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:11aa79fd2425bed9
redis_mode:standalone
os:Linux 4.4.0-142-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:5.4.0
process_id:1191
run_id:fcc57fa2c17440ab964538c2d986dc330d9e1223
tcp_port:6379
uptime_in_seconds:3045
uptime_in_days:0
hz:10
lru_clock:13667343
executable:/usr/bin/redis-server
config_file:/etc/redis/redis.conf
当我访问/horizon/dashboard时,一切都正常运行。 我在为排队作业的有效负载添加一些元数据,从那时起问题就开始了。然后我又删除了那个代码,基本上回到了以前的代码库。现在已经没有区别了,所以我现在怀疑我还有另一个问题

但是,当我向队列添加内容时,不会引发任何异常。Bugsnag没有新的条目,我的过程只是继续,没有任何错误

你知道我可以验证什么来检测实际问题吗?配置有问题吗?老实说,我有点不知所措,尤其是因为我没有信息可供利用:(

我还使用tinker检查了我是否可以连接到redis,这也可以正常工作,没有例外:

$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.2.0RC3 — cli) by Justin Hileman
>>> Illuminate\Support\Facades\Redis::connection('default')
=> Illuminate\Redis\Connections\PredisConnection {#3369}

出现此问题的原因是我测试此问题时使用的通知确实使用了Queuable特性,但没有实现ShouldQueue接口。后者要求Laravel自动将这些通知排队

当我们开始使用其他通知进行测试时,我们注意到了这一点


我们仍然存在的唯一问题是,尽管如此,我们还是希望电子邮件能够发出,因为它会同步发送,但由于某些原因它没有发送。

您正在运行
php artisan队列:工作
对吗?我们在Laravel Forge上的部署脚本有以下内容:php artisan horizon:终止php artisan队列:重新启动它在每次部署时都会运行(当前在每次github提交时自动触发,因此它已经运行了几次-而且horizon仪表板显示一切正常,进程正在运行…)是的,所以我重新阅读并看到horizon认为一切都很好。可怕的是,我根本没有任何错误可以处理-我只是更新了.env以设置队列驱动程序进行同步,我立即收到了我的电子邮件,所以代码中没有任何其他东西会导致问题…问题是,我甚至在horizon中没有看到任何东西…当它是有效的,但当它不起作用时,却没有给我任何信息:(我感觉到你的痛苦,我在一个类似的问题上花了几个小时。