【问题标题】:Laravel choses wrong queue connectionLaravel 选择了错误的队列连接
【发布时间】:2021-02-04 09:08:27
【问题描述】:

我已经开发一个系统大约 2 个月了,没有任何问题。然而,现在是时候启动了,我确实设置了一个专用服务器并开始安装所需的一切。然而,当我来设置主管时,事情变得很糟糕。

在我的 .env 文件中,我得到了这个设置:

QUEUE_CONNECTION=database

但是,在启动主管时,我收到此错误:

{
"class": "Error",
"message": "Class 'Aws\\Sqs\\SqsClient' not found",
"code": 0,
"file": "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php:26",
"trace": [
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php:157",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php:138",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:145",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:116",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:100",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Container/Util.php:40",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:37",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:610",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Console/Command.php:136",
    "/var/www/brevia-laravel/vendor/symfony/console/Command/Command.php:256",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Console/Command.php:121",
    "/var/www/brevia-laravel/vendor/symfony/console/Application.php:971",
    "/var/www/brevia-laravel/vendor/symfony/console/Application.php:290",
    "/var/www/brevia-laravel/vendor/symfony/console/Application.php:166",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Console/Application.php:93",
    "/var/www/brevia-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:129",
    "

我尝试过缓存:清除和配置:清除,但工作人员仍然认为我想运行 SqsQueue 而不是数据库队列...尝试环顾四周,但找不到类似的人问题。

我正在运行 Ubuntu 18.04 和 PHP 7.3.26

编辑

运行命令:

php artisan queue:work

有效,所以问题可能是主管设置...

【问题讨论】:

    标签: laravel supervisord


    【解决方案1】:

    添加到 .env QUEUE_DRIVER=数据库

    并在配置文件 ~/config/queue.php 中添加修复构造

    [
        'default' => env('QUEUE_DRIVER', 'sync'),
         ....
          ....
    ]
    

    【讨论】:

    • 奇怪的是,由于某种原因,Laravel 仍然以 Ses 为目标......即使在 config:clear & config 之后,我仍然收到相同的错误“未找到 Class 'Aws\Sqs\SqsClient'”:缓存...似乎还有其他一些我忘记了的设置
    • 如果我手动运行“php artisan queue:work”,它工作正常。所以当主管试图这样做时,似乎有什么问题。
    【解决方案2】:

    发现错误。当我启动主管时,事实证明我错误地放置了错误的标志。这迫使工作人员运行 AWS 而不是 .env 中的设置

    【讨论】:

    • 你能写出你以前用过哪个标志,哪个修复过吗?我可能有类似的问题
    • 嘿@LukasGrofcik!我的主管正在运行 atm 的命令是:php /var/www/myapp/artisan queue:work --sleep=3 --tries=3 --max-time=3600 --timeout=10,就是这样:)跨度>
    猜你喜欢
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多