aboutsummaryrefslogtreecommitdiff
path: root/setup/jetstream
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2023-03-17 12:09:45 +0100
committerGitHub <noreply@github.com>2023-03-17 11:09:45 +0000
commit5579121c6f27105342a2aea05cf9a3119d73cecb (patch)
tree1d8b7bec90079b6f693585d306c19019ea426870 /setup/jetstream
parentd88f71ab71a60348518f7fa6735ac9f0bfb472c3 (diff)
Preparations for removing `BaseDendrite` (#3016)
Preparations to actually remove/replace `BaseDendrite`. Quite a few changes: - SyncAPI accepts an `fulltext.Indexer` interface (fulltext is removed from `BaseDendrite`) - Caches are removed from `BaseDendrite` - Introduces a `Router` struct (likely to change) - also fixes #2903 - Introduces a `sqlutil.ConnectionManager`, which should remove `base.DatabaseConnection` later on - probably more
Diffstat (limited to 'setup/jetstream')
-rw-r--r--setup/jetstream/nats.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/setup/jetstream/nats.go b/setup/jetstream/nats.go
index 01fec9ad..48683789 100644
--- a/setup/jetstream/nats.go
+++ b/setup/jetstream/nats.go
@@ -20,6 +20,8 @@ import (
type NATSInstance struct {
*natsserver.Server
+ nc *natsclient.Conn
+ js natsclient.JetStreamContext
}
var natsLock sync.Mutex
@@ -69,11 +71,18 @@ func (s *NATSInstance) Prepare(process *process.ProcessContext, cfg *config.JetS
if !s.ReadyForConnections(time.Second * 10) {
logrus.Fatalln("NATS did not start in time")
}
+ // reuse existing connections
+ if s.nc != nil {
+ return s.js, s.nc
+ }
nc, err := natsclient.Connect("", natsclient.InProcessServer(s))
if err != nil {
logrus.Fatalln("Failed to create NATS client")
}
- return setupNATS(process, cfg, nc)
+ js, _ := setupNATS(process, cfg, nc)
+ s.js = js
+ s.nc = nc
+ return js, nc
}
func setupNATS(process *process.ProcessContext, cfg *config.JetStream, nc *natsclient.Conn) (natsclient.JetStreamContext, *natsclient.Conn) {