gpt4 book ai didi

php - 为什么 BroadCastEvent 在 Laravel 中排队?如何阻止它?

转载 作者:IT王子 更新时间:2023-10-29 05:55:21 24 4
gpt4 key购买 nike

我正在做一个需要实时广播经纬度的项目

我有类似下面的内容

namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Support\Facades\Redis;

class TrackersBroadcast extends Event implements ShouldBroadcast
{
public $lat, $lng,$imei,$date_time

use SerializesModels;

/**
* Create a new event instance.
*
* @return void
*/
public function __construct(
$lat,
$lng,
$imei,
$date_time

)

{
$this->lat = $lat;
$this->lng = $lng;
$this->imei = $imei;
$this->date_time = $date_time;

}

/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return ['tracker-channel'];
}


}

在某些情况下我需要触发实时电子邮件,所以我决定像下面这样实现 laravel 消息队列

namespace App\Jobs;

use App\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Mail;

class SendAlertEmail extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public $data;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($data)
{
$this->data=$data;
}

/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
Mail::send('emails.test', ['testVar' => $this->data], function($message) {
$message->from('no-reply@sample.com', 'Website Name');
$message->to('developer@gmail.com')->subject('A simple test');
});
}
}

每当我运行 php artisan queue:listen database 时,它也会对我的广播事件进行排队。我不想排队广播事件。如何做到这一点?

enter image description here

最佳答案

因为如果你扩展 ShouldBroadcast 接口(interface),Laravel 事件广播默认排队。如果您不想让事件广播排队,您应该扩展 ShouldBroadcastNow 接口(interface)。

use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;

class TrackersBroadcast implements ShouldBroadcastNow
{
......
}

所以这意味着您的事件广播将使用同步队列驱动程序。

关于php - 为什么 BroadCastEvent 在 Laravel 中排队?如何阻止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com