You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony Messenger集成Sentry Queue遇阻,求经验者指导

Symfony Messenger 与 Sentry Queues 集成问题

我尝试将Symfony Messenger与Sentry Queues集成已有一段时间,但始终未能成功,且网上找不到相关参考资料。我参考Sentry提供的示例修改了代码(已移除对消息的依赖),但即使是最简示例,也无法在Sentry的队列面板中显示队列。我将代码放在事件处理器中,确认事件能正常触发,且Sentry的错误上报功能正常。

以下是我的代码:

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");

}

注:我知道这段代码很糟糕,只是为了测试让它能运行起来

请问有谁有相关集成经验吗?


内容的提问来源于stack exchange,提问作者krystof18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:15:01