【问题标题】:Laravel jobs pushed to Amazon SQS but not processingLaravel 作业推送到 Amazon SQS 但未处理
【发布时间】:2017-01-23 23:31:11
【问题描述】:

我正在运行 Laravel 5.3。我正在尝试测试队列作业,并且我已将队列配置为使用 Amazon SQS。我的应用程序能够将作业推送到队列中,并且我可以在 SQS 中看到该作业。但它会留在那里,永远不会被处理。我试过运行php artisan queue:workqueue:listenqueue:work sqs...他们都没有将工作从队列中弹出。我正在使用 Homestead 在本地进行测试。处理来自 SQS 的作业有技巧吗?

【问题讨论】:

  • 您是否遵循了捕获失败作业的流程?另外,添加--tries=1 用于测试目的。后者不会解决您的问题,但它会阻止您的日志无休止地填满,并阻止代码损坏的问题阻止管道的其余部分被处理。
  • 您是否将作业分派到特定的队列名称中?
  • 另外,请确保您指定了默认队列驱动程序,并且您设置并仔细检查了 SQS 配置的所有参数,而不是默认设置。如果问题不存在,也许您可​​以发布用于创建队列和配置的代码(显然在发布之前替换您的凭据)
  • @NestorMataCuthbert 我没有推送到特定的队列名称。只是默认。我能够使用artisan queue:listen sqs 让它工作。这将从队列中弹出并处理作业。但它仍然不适用于artisan queue:work sqs。莫名其妙……
  • 我遇到了同样的问题。你发邮件了吗?会不会是您的邮件发件人已达到上限?我认为这就是我看到的问题。虽然不是 100% 确定

标签: php laravel amazon-web-services amazon-sqs


【解决方案1】:

我遇到了同样的问题。我正在使用主管。这对我有用:

命令中提到的队列驱动程序(sqs):

command=php /var/www/html/artisan queue:work sqs --tries=3

然后运行这些命令:

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl restart all

发布这个以防万一它对任何人有帮助。

【讨论】:

    【解决方案2】:

    以下帖子中的说明对我有用:https://blog.wplauncher.com/sqs-queue-in-laravel-not-working/。本质上,请确保您执行以下操作:

    • 在 SQS 中创建标准队列
    • 更新您的 config/queue.php 文件以使用您的 SQS 凭据(我建议 - - 在您的 .env 文件中添加更多环境变量并在此文件中引用它们)
    • 更新 .env 中的 QUEUE_DRIVER,使其设置为 QUEUE_DRIVER=SQS
    • 更新您的主管配置文件(通常是 /etc/supervisor/conf.d/laravel-worker.conf)
    • 更新并重新启动主管(参见@Dijkstra 提到的 3 个命令)

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多