Php Laravel-事件订阅者排队-订阅者方法在不同类中时
你好,好的开发者 我曾尝试使用来自的解决方案,但它没有解决我的问题,因此我将它作为一个单独的问题来提问Php Laravel-事件订阅者排队-订阅者方法在不同类中时,php,laravel,laravel-events,Php,Laravel,Laravel Events,你好,好的开发者 我曾尝试使用来自的解决方案,但它没有解决我的问题,因此我将它作为一个单独的问题来提问 TL;DR-我希望订阅服务器侦听器在队列中异步执行。我的订户为每个事件从上的不同类调用方法。我试图在我的SubscriberClass |我的Listener Class |重命名方法中将implements ShouldQueue添加到每个类中的handle,但没有任何效果。它们仍然在没有队列的情况下同步执行 我有一个事件订阅者类:TesterAPI。我在EventServiceProvid
TL;DR
-我希望订阅服务器侦听器在队列中异步执行。我的订户为每个事件从上的不同类调用方法。我试图在我的SubscriberClass |我的Listener Class |重命名方法中将implements ShouldQueue
添加到每个类中的handle
,但没有任何效果。它们仍然在没有队列的情况下同步执行
我有一个事件订阅者类:TesterAPI
。我在EventServiceProvider
subscribe
数组中添加了它
我有一个事件类SourceAPIEvents
class SourceAPIEvents
{
const PROJECT_CREATED = 'project.created';
const PROJECT_PAUSED = 'project.paused';
const PROJECT_RESUME = 'project.resume';
const PROJECT_CLOSED = 'project.closed';
public $project;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Project $project)
{
$this->project = $project;
}
}
TesterAPI
-订户
class TesterAPI implements ShouldQueue
{
/**
* Register the listeners for the subscriber.
*
* @param \Illuminate\Events\Dispatcher $events
*/
public function subscribe($events)
{
$events->listen(
SourceAPIEvents::PROJECT_CREATED,
'App\Listeners\Internal\Project\SourceAPI\Tester\ProjectCreate@handle'
);
$events->listen(
SourceAPIEvents::PROJECT_RESUME,
'App\Listeners\Internal\Project\SourceAPI\Tester\ProjectResume@handle'
);
$events->listen(
SourceAPIEvents::PROJECT_PAUSED,
'App\Listeners\Internal\Project\SourceAPI\Tester\ProjectPause@handle'
);
$events->listen(
SourceAPIEvents::PROJECT_CLOSED,
'App\Listeners\Internal\Project\SourceAPI\Tester\ProjectClose@handle'
);
}
}
以下是我的侦听器类:
class ProjectCreate extends TesterBase implements ShouldQueue
{
public function handle(SourceAPIEvents $sourceAPIEvent)
{
//Do Something
}
}
class ProjectPause extends TesterBase implements ShouldQueue
{
public function handle(SourceAPIEvents $sourceAPIEvent)
{
//Do Something
}
}
class ProjectResume extends TesterBase implements ShouldQueue
{
public function handle(SourceAPIEvents $sourceAPIEvent)
{
//Do Something
}
}
我这样称呼这些事件
event(SourceAPIEvents::PROJECT_CREATED, new SourceAPIEvents($project));
event(SourceAPIEvents::PROJECT_RESUME, new SourceAPIEvents($project));
帮助我理解我做错了什么