【问题标题】:How to process email queued in Laravel如何处理 Laravel 中排队的电子邮件
【发布时间】:2018-09-25 23:20:06
【问题描述】:

我有一个 AWS SQS,并且我成功创建了一个通知系统,它将消息保存在 AWS SQS 队列中。

在代码中:

protected function saveNotificationEmail($subject, $msg)
{                          
    Mail::to(       
        $this->getUserRecord()->email
    )->queue(new Alert($subject, $msg));
}

已通过 CLI php artisan make:mail Alert 创建对象“警报”。

现在,当我运行代码时,队列中有一个新项目;所以一切都可以很好地将数据放入队列中。 当我运行php artisan queue:work 时,我会收到如下一系列消息:

[2018-09-25 22:37:43] Processing: App\Mail\Alert
[2018-09-25 22:37:48] Processing: App\Mail\Alert
[2018-09-25 22:37:52] Processing: App\Mail\Alert
[2018-09-25 22:37:57] Processing: App\Mail\Alert

查看 AWS SQS,获取消息(飞行中的消息),然后再次移回队列中,就像可以处理一样。 我在没有queue 方法的情况下测试了电子邮件系统,它工作正常。 我错过了什么?

我猜这个问题和这个没有答案的问题很相似

【问题讨论】:

  • 您在.env 中为您的QUEUE_DRIVER 设置了什么?您的config/queue.php 文件是什么样的?
  • QUEUE_DRIVER=sqs 在 config/queue.php 文件中,我使用 AWS SQS 凭证配置了“sqs”子数组。我猜这部分工作正常,因为代码能够将消息放入队列中

标签: php laravel email laravel-5 amazon-sqs


【解决方案1】:

问题与视图有关,因为我没有传递模板所期望的变量。 使用 CLI 命令 php artisan queue:listen -vvv 没有显示任何相关信息,我在日志文件 storage/log/laravel.log 中找到了更多信息

【讨论】:

  • 您的回答帮助我修复了在 Laravel 5.5 上进行数据库队列时出现的相同错误。我的原因是我没有在类中声明传递给构造函数的变量,即使我在构造函数中对其进行了初始化。修复是在类中声明属性。
猜你喜欢
  • 2019-03-09
  • 2018-11-30
  • 2016-04-05
  • 2020-03-08
  • 1970-01-01
  • 2015-11-27
  • 2022-08-13
  • 1970-01-01
  • 2019-07-17
相关资源
最近更新 更多