feat: implement jetstream push delivery and heartbeat

This commit is contained in:
Joseph Doherty
2026-02-23 06:08:14 -05:00
parent 9a0de19c2d
commit fecb51095f
6 changed files with 113 additions and 4 deletions

View File

@@ -0,0 +1,31 @@
using NATS.Server.JetStream.Models;
using NATS.Server.JetStream.Storage;
namespace NATS.Server.JetStream.Consumers;
public sealed class PushConsumerEngine
{
public void Enqueue(Queue<PushFrame> queue, StoredMessage message, ConsumerConfig config)
{
queue.Enqueue(new PushFrame
{
IsData = true,
Message = message,
});
if (config.HeartbeatMs > 0)
{
queue.Enqueue(new PushFrame
{
IsHeartbeat = true,
});
}
}
}
public sealed class PushFrame
{
public bool IsData { get; init; }
public bool IsHeartbeat { get; init; }
public StoredMessage? Message { get; init; }
}