0
對於用戶操作,我需要發送電子郵件給他的所有用戶。在這種情況下,電子郵件應該排隊等待稍後發送。Laravel一次添加多個作業
我使用過的作業可以一次接受單個用戶實例(接下來是Laravel Doc),它將作業插入作業表中。這可以。
現在,由於用戶數量多於一個,我如何在作業表中一次添加多個用戶實例或作業?在Laravel 5.2中,我怎樣才能做到這一點?
對於用戶操作,我需要發送電子郵件給他的所有用戶。在這種情況下,電子郵件應該排隊等待稍後發送。Laravel一次添加多個作業
我使用過的作業可以一次接受單個用戶實例(接下來是Laravel Doc),它將作業插入作業表中。這可以。
現在,由於用戶數量多於一個,我如何在作業表中一次添加多個用戶實例或作業?在Laravel 5.2中,我怎樣才能做到這一點?
我不知道是否通過閱讀你的問題而在這裏丟失了某些東西,但是如果你正在實現自己的作業隊列,你不能改變構造函數來接受用戶的集合(數組)處理方法只需運行一個可以通過電子郵件發送的foreach?
實施例修改以接受用戶而不是單個用戶的集合Laravel文檔:
<?php
namespace App\Jobs;
use App\User;
use App\Jobs\Job;
use Illuminate\Contracts\Mail\Mailer;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class SendReminderEmail extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
protected $users = [];
/**
* Create a new job instance.
*
* @param User $user
* @return void
*/
public function __construct($users) //Pass in an array of your user objects
{
$this->users = $users;
}
/**
* Execute the job.
*
* @param Mailer $mailer
* @return void
*/
public function handle(Mailer $mailer)
{
foreach($users as $currentUser){
$mailer->send('emails.reminder', ['user' => $currentUser], function ($){
//code here
});
$currentUser->reminders()->create(...);
}
}
}
感謝。這工作,我對喬布斯收集對象有點困惑。你的回答使我清楚。 – Sovon
沒問題!很高興我能幫上忙。 –