【问题标题】:Queues not working队列不起作用
【发布时间】:2017-11-26 19:43:58
【问题描述】:

我在发送电子邮件时遇到队列问题。使用 send 方法时会发送电子邮件:

Mail::send

当我切换到队列方法并配置作业表、QUEUE_DRIVER 和 failed_jobs 表时,队列中的所有作业最终都在 failed_jobs 表中。 queue.php 文件我没有碰过任何东西。

作为我的开发环境在 Windows 7 上运行。

PHP 版本 5.6.15

这个功能是否使用curl(因为phpinfo显示已启用)?

代码:

.env 文件

QUEUE_DRIVER=数据库

邮件程序

Mail::queue('emails.orderEmail',
      [
      'user' => Auth::user()
    ], function ($m) {
        $m->from($this->business->email, $this->business->business_name);
        $m->to($this->recipientEmail);
        $m->subject($this->subject);
        $m->replyTo($this->business->email, $this->name);
      });

我正在运行这个工匠命令(尝试使用队列:工作以及使用):

 php artisan queue:listen --tries=3

【问题讨论】:

  • 删除您的日志文件,然后再次运行您的脚本并查看日志文件,很奇怪吧?您很可能在某处有语法错误。您还可以打开failed_jobs 表并查看那里的堆栈跟踪。
  • @Kyslik 我有一个名为 STORE_ID 的 php SERVER 变量,它似乎会产生异常错误。通过队列发送时是否无法访问? [2017-06-23 12:33:22] local.ERROR: 异常 'ErrorException' 与 C:\xampp\htdocs\Server1\app\ShippingSettings.php:18 中的消息 'Undefined index: STORE_ID' 堆栈跟踪:跨度>

标签: php laravel laravel-5 laravel-5.2


【解决方案1】:

您必须将该 STORE_ID 会话变量传递给邮件视图。

Mail::queue('emails.orderEmail',
  [
  'user' => Auth::user(),
  'store_id' => session('STORE_ID')
], function ($m) {

【讨论】:

  • STORE_ID SERVER 变量对我的模型不可用,不仅仅是电子邮件视图,因此它不起作用。我可能需要重新考虑如何在整个应用程序中使用 STORE_ID。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-03
  • 2018-06-18
  • 2018-04-08
相关资源
最近更新 更多