如何让 Laravel 5.4 使用 AWS SQS 队列
How to get Laravel 5.4 working with AWS SQS Queues
我正在使用 Laravel 5.4 和 SQS Fifo 队列。
我似乎无法让它与我的 SQS Fifo 队列一起工作。排队我的电子邮件作业。
任何有这方面经验的人都可以为我指明如何 laravel 使用我的 SQS Fifo 队列的正确方向。
这是我将作业添加到队列的控制器代码:
(new ReferFriendEmail($referFriendObj))->onConnection('my_sqs_fifo');
这是我的工作代码:
class ReferFriendEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $referFriendObj = false;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($referFriendObj)
{
$this->referFriendObj = $referFriendObj;
}
/**
* Execute the job.
*
* @return void
*/
public function handle( )
{
$input = $this->referFriendObj->input;
Mail::send( 'emails.refer-a-friend',
[
'user' => $this->referFriendObj->from_user_info,
'first_name' => strtoupper( trim( $this->referFriendObj->from_user_info->first_name)),
'unique_link' => $this->referFriendObj->unique_link,
],
function ($m) use ( $input ) {
$m->from('ryan_hughes_smith@live.co.uk', 'Kuflink');
$m->to($input['to_email'], $input['to_email'] )->subject( "You've been referred to Kuflink by " . $input['first_name'] );
}
);
Email_user_referrer::where('email' , $input['to_email'])
->update(['flag_email_sent' => 1]);
}
}
似乎没有任何事情发生。我用它作为驱动程序。
根据评论,您正在创建 工作,但实际上并没有发送 工作。 dispatch
助手 does this for you:
$job = (new ReferFriendEmail($referFriendObj))->onConnection('my_sqs_fifo');
dispatch($job);
我正在使用 Laravel 5.4 和 SQS Fifo 队列。
我似乎无法让它与我的 SQS Fifo 队列一起工作。排队我的电子邮件作业。
任何有这方面经验的人都可以为我指明如何 laravel 使用我的 SQS Fifo 队列的正确方向。
这是我将作业添加到队列的控制器代码:
(new ReferFriendEmail($referFriendObj))->onConnection('my_sqs_fifo');
这是我的工作代码:
class ReferFriendEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $referFriendObj = false;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($referFriendObj)
{
$this->referFriendObj = $referFriendObj;
}
/**
* Execute the job.
*
* @return void
*/
public function handle( )
{
$input = $this->referFriendObj->input;
Mail::send( 'emails.refer-a-friend',
[
'user' => $this->referFriendObj->from_user_info,
'first_name' => strtoupper( trim( $this->referFriendObj->from_user_info->first_name)),
'unique_link' => $this->referFriendObj->unique_link,
],
function ($m) use ( $input ) {
$m->from('ryan_hughes_smith@live.co.uk', 'Kuflink');
$m->to($input['to_email'], $input['to_email'] )->subject( "You've been referred to Kuflink by " . $input['first_name'] );
}
);
Email_user_referrer::where('email' , $input['to_email'])
->update(['flag_email_sent' => 1]);
}
}
似乎没有任何事情发生。我用它作为驱动程序。
根据评论,您正在创建 工作,但实际上并没有发送 工作。 dispatch
助手 does this for you:
$job = (new ReferFriendEmail($referFriendObj))->onConnection('my_sqs_fifo');
dispatch($job);