gpt4 book ai didi

php - Laravel Forge 在同一台服务器上的多个队列

转载 作者:可可西里 更新时间:2023-10-31 23:27:19 25 4
gpt4 key购买 nike

我使用 Laravel Forge 在不同的环境中运行了三个相同的 Laravel 应用程序。

假设这是三个站点:

  • site.com(生产)
  • staging.site.com(暂存)
  • dev.site.com(开发)

在生产站点上,我运行 Laravel Horizo​​n 来监控生产站点的队列。

当我在我的 dev.site.com 上运行密码重置时,由于队列中发生异常,电子邮件没有发送给用户。

Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\Models\User]. in /home/forge/site.com/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:412

如果仔细查看错误,您会发现错误发生在 site.com 生产环境中。所以一封电子邮件在开发环境中被放入队列,但在生产环境中被执行。

这是我的 queue.php 配置:

<?php

return [

'default' => env('QUEUE_DRIVER', 'high'),

'connections' => [

'sync' => [
'driver' => 'sync',
],

'high' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
],

'medium' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
],

'low' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
],

],

'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],

];

这些是 Forge 上所有三个环境的队列设置:

Laravel Forge Queue config

这是正常行为吗?还是我做错了什么?

最佳答案

听起来您在所有站点上都使用相同的队列驱动程序并且它们具有相同的配置,对吗?如果是这种情况,您将在所有三个站点之间汇集,这会“污染”一个站点。您需要更改每个配置,以便它们具有单独的队列,这样可以将它们分开。您甚至可以拥有单独的 redis、数据库、内存缓存等实例。事实上,我建议您至少在生产环境中这样做。

关于php - Laravel Forge 在同一台服务器上的多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com