From be96358b7fa0aab8818dc642e549b3bfdc672f00 Mon Sep 17 00:00:00 2001 From: 4566704 <4566704@qq.com> Date: Tue, 20 May 2025 22:40:12 +0800 Subject: [PATCH] fix: NewJetProducer ctx is nil causing crash --- example/natsq/publisher/publisher.go | 7 ++++--- natsq/producer.go | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/example/natsq/publisher/publisher.go b/example/natsq/publisher/publisher.go index a9fa2a0..ac85d3a 100644 --- a/example/natsq/publisher/publisher.go +++ b/example/natsq/publisher/publisher.go @@ -1,6 +1,7 @@ package main import ( + "context" "log" "math/rand" "time" @@ -29,7 +30,7 @@ func main() { p.Close() // JetMode - j, _ := natsq.NewJetProducer(&c) + j, _ := natsq.NewJetProducer(&c, context.Background()) j.CreateOrUpdateStream(jetstream.StreamConfig{ Name: "ccc", Subjects: []string{"ccc", "ddd", "eee"}, @@ -50,8 +51,8 @@ func main() { func randSub() string { source := rand.NewSource(time.Now().UnixNano()) - // 创建一个新的随机数生成器 - rng := rand.New(source) + // 创建一个新的随机数生成器 + rng := rand.New(source) strings := []string{"ccc", "ddd", "eee"} randomIndex := rng.Intn(len(strings)) return strings[randomIndex] diff --git a/natsq/producer.go b/natsq/producer.go index c3f8292..52b73f9 100644 --- a/natsq/producer.go +++ b/natsq/producer.go @@ -47,7 +47,7 @@ type JetProducer struct { // NewJetProducer creates a new JetStream producer. // It takes a NatsConfig as input and returns a pointer to a JetProducer and an error. // It connects to the NATS server using the provided configuration and creates a new JetStream context. -func NewJetProducer(c *NatsConfig) (*JetProducer, error) { +func NewJetProducer(c *NatsConfig, ctx context.Context) (*JetProducer, error) { sc, err := nats.Connect(c.ServerUri, c.Options...) if err != nil { return nil, err @@ -59,6 +59,7 @@ func NewJetProducer(c *NatsConfig) (*JetProducer, error) { return &JetProducer{ conn: sc, js: js, + ctx: ctx, }, nil }