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

如何获取Azure Event Hub EventData创建时间戳以筛选近15分钟消息?

关于Event Hub EventData时间戳的问题解答

嘿,刚好对这个问题门儿清,直接给你明确答案:

  • EventData确实自带时间戳字段,但不在Properties里,它有一个专门的EnqueuedTimeUtc属性——这是Event Hub服务接收到这条消息时记录的UTC时间,完全匹配你用来筛选最近15分钟消息的需求。

这个字段设计出来就是干这类时间范围筛选的,虽然你提到时间戳通常和消息运行逻辑无关,但对过滤旧消息来说简直是量身定做。

给你举个.NET SDK下的代码示例,在Listener处理消息时可以这么做筛选:

var fifteenMinutesAgo = DateTime.UtcNow.AddMinutes(-15);
if (eventData.EnqueuedTimeUtc >= fifteenMinutesAgo)
{
    // 处理这条最近15分钟内的消息
    ProcessEvent(eventData);
}
else
{
    // 跳过旧消息
    return;
}

如果你的场景需要的是消息生成时的自定义时间戳(比如发送方创建消息的时间,而非Event Hub接收时间),那你需要在发送消息时手动把这个时间戳放到EventData.Properties字典里,比如:

var eventData = new EventData(Encoding.UTF8.GetBytes("你的消息内容"));
eventData.Properties["MessageCreatedTimeUtc"] = DateTime.UtcNow;

但回到你的核心需求,用默认的EnqueuedTimeUtc就足够满足“筛选最近15分钟消息”的要求,完全不用额外自定义字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:22:09