让Telescope通过tag监听不同的Job
class PushJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable;
private $data;
/**
* @param $data
*/
public function __construct( $data)
{
$this->data = $data;
}
/**
* @param WechatService $service
*/
public function handle(WechatService $service)
{
$service->sendTemplate($this->data);
}
/**
* 实现 Telescope 标签定义,生成环境加入以下标签进行监控
* @return array
*/
public function tags(): array
{
return ['Template:'.$this->data->template_id];
}
}
再生成环境下添加以下tag可以实现调试
tags()方法会被vendor/laravel/telescope/src/Watchers/JobWatcher.php下recordJob中$this->tags()调用,
public function recordJob($connection, $queue, array $payload)
{
if (! Telescope::isRecording()) {
return;
}
$content = array_merge([
'status' => 'pending',
], $this->defaultJobData($connection, $queue, $payload, $this->data($payload)));
Telescope::recordJob(
$entry = IncomingEntry::make($content)
->withFamilyHash($content['data']['batchId'] ?? null)
->tags($this->tags($payload))
);
return $entry;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: