事件系统使用队列无法执行
事件代码
<?php
namespace App\Events;
use App\Models\PostsModel;
use App\Models\WechatMembers;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
/**
* 微信用户浏览素材事件
*/
class WechatMemberViewEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* 素材
* @var PostsModel
*/
public $post;
/**
* 当前用户
* @var WechatMembers
*/
public $currentUser;
/**
* Create the event listener.
*
* @return void
*/
public function __construct(WechatMembers $wechatMember, PostsModel $post)
{
$this->currentUser = $wechatMember;
$this->post = $post;
}
}
监听器代码
<?php
namespace App\Listeners;
use App\Events\WechatMemberViewEvent;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Redis;
/**
* 微信用户浏览文章监听器
*/
class WechatMemberViewListener implements ShouldQueue
{
/**
* 任务将被发送到的连接的名称。
*
* @var string|null
*/
public $connection = 'redis';
/**
* 任务将被发送到的队列的名称。
*
* @var string|null
*/
public $queue = 'listeners';
/**
* 任务被处理的延迟时间(秒)。
*
* @var int
*/
public $delay = 1;
/**
* Handle the event.
*
* @param WechatMemberViewEvent $event
* @return void
*/
public function handle(WechatMemberViewEvent $event)
{
info($event->post);
}
public function viaQueue(): ?string
{
return $this->queue;
}
}
触发事件
WechatMemberViewEvent::dispatch($request->user(), $info);
监听队列
php artisan queue:work
一系列操作下来后也没生成日志,queue:default里是用内容的。不知道哪里出了问题,求大佬指教。。