Код: Выделить всё
public function sendMessageToTransport(SendMessageToTransportsEvent $event): void
{
$parentSpan = \Sentry\SentrySdk::getCurrentHub()->getSpan();
if ($parentSpan !== null) {
$context = \Sentry\Tracing\SpanContext::make()
->setOp('queue.publish')
->setDescription(SendQuestionConfirmationEmail::class);
$span = $parentSpan->startChild($context);
\Sentry\SentrySdk::getCurrentHub()->setSpan($span);
// Publish your job to the queue
/*Queue::push($job, [
'publish_time' => microtime(true),
'sentry_trace' => \Sentry\getTraceparent(),
'baggage' => \Sentry\getBaggage(),
]);*/
$span
->setData([
'messaging.message.id' => '1',
'messaging.destination.name' => 'default',
'messaging.message.body.size' => 200,
])
->finish();
\Sentry\SentrySdk::getCurrentHub()->setSpan($parentSpan);
}
$context = \Sentry\continueTrace(
\Sentry\getTraceparent(),
\Sentry\getBaggage()
)->setOp('queue.process')->setName(SendQuestionConfirmationEmail::class);
$transaction = \Sentry\startTransaction($context);
\Sentry\SentrySdk::getCurrentHub()->setSpan($transaction);
try {
// Continue job processing...
} catch (\Throwable $e) {
$transaction->setStatus(\Sentry\Tracing\SpanStatus::internalError());
}
$transaction
->setData([
'messaging.message.id' => 1,
'messaging.destination.name' => 'default',
'messaging.message.body.size' => 200,
'messaging.message.receive.latency' => 10,
'messaging.message.retry.count' => 1,
])
->finish();
dump("done");
}
Я поместил все в обработчик событий, и вот результат часовых попыток. Я уверен, что событие срабатывает нормально, а также что мой часовой работает. (ошибки выводятся нормально)
Есть ли у кого-нибудь опыт работы с этим?
Подробнее здесь: https://stackoverflow.com/questions/787 ... -messenger
Мобильная версия