Skip to content

Commit 6e28ca1

Browse files
authored
[#592]: feat: disable activity workers
2 parents a76ff9e + c2aa12d commit 6e28ca1

14 files changed

+401
-233
lines changed

aggregatedpool/activity.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ type Activity struct {
3030
seqID uint64
3131
running sync.Map
3232

33-
pldPool *sync.Pool
33+
pldPool *sync.Pool
34+
disableActivityWorkers bool
3435
}
3536

36-
func NewActivityDefinition(ac common.Codec, p common.Pool, log *zap.Logger) *Activity {
37+
func NewActivityDefinition(ac common.Codec, p common.Pool, log *zap.Logger, disableActivityWorkers bool) *Activity {
3738
return &Activity{
3839
log: log,
3940
codec: ac,
@@ -43,6 +44,7 @@ func NewActivityDefinition(ac common.Codec, p common.Pool, log *zap.Logger) *Act
4344
return new(payload.Payload)
4445
},
4546
},
47+
disableActivityWorkers: disableActivityWorkers,
4648
}
4749
}
4850

aggregatedpool/workers.go

+15
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ func TemporalWorkers(wDef *Workflow, actDef *Activity, wi []*internal.WorkerInfo
8585
log.Debug("workflow registered", zap.String(tq, wi[i].TaskQueue), zap.Any("workflow name", wi[i].Workflows[j].Name))
8686
}
8787

88+
if actDef.disableActivityWorkers {
89+
log.Debug("activity workers disabled", zap.String(tq, wi[i].TaskQueue))
90+
goto RegisterWorkflows
91+
}
92+
8893
for j := 0; j < len(wi[i].Activities); j++ {
8994
wrk.RegisterActivityWithOptions(actDef.execute, tActivity.RegisterOptions{
9095
Name: wi[i].Activities[j].Name,
@@ -95,6 +100,16 @@ func TemporalWorkers(wDef *Workflow, actDef *Activity, wi []*internal.WorkerInfo
95100
log.Debug("activity registered", zap.String(tq, wi[i].TaskQueue), zap.Any("workflow name", wi[i].Activities[j].Name))
96101
}
97102

103+
RegisterWorkflows:
104+
for j := 0; j < len(wi[i].Workflows); j++ {
105+
wrk.RegisterWorkflowWithOptions(wDef, workflow.RegisterOptions{
106+
Name: wi[i].Workflows[j].Name,
107+
DisableAlreadyRegisteredCheck: false,
108+
})
109+
110+
log.Debug("workflow registered", zap.String(tq, wi[i].TaskQueue), zap.Any("workflow name", wi[i].Workflows[j].Name))
111+
}
112+
98113
workers = append(workers, wrk)
99114
}
100115

common/interfaces.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ import (
66

77
"github.com/roadrunner-server/pool/payload"
88
"github.com/roadrunner-server/pool/pool"
9-
staticPool "github.com/roadrunner-server/pool/pool/static_pool"
109
"github.com/roadrunner-server/pool/state/process"
1110
"github.com/roadrunner-server/pool/worker"
1211
"github.com/temporalio/roadrunner-temporal/v5/internal"
1312
"go.temporal.io/sdk/interceptor"
1413
"go.uber.org/zap"
14+
15+
staticPool "github.com/roadrunner-server/pool/pool/static_pool"
1516
)
1617

1718
type Interceptor interface {
@@ -64,4 +65,5 @@ type Configurer interface {
6465
// Server creates workers for the application.
6566
type Server interface {
6667
NewPool(ctx context.Context, cfg *pool.Config, env map[string]string, _ *zap.Logger) (*staticPool.Pool, error)
68+
NewPoolWithOptions(ctx context.Context, cfg *pool.Config, env map[string]string, _ *zap.Logger, options ...staticPool.Options) (*staticPool.Pool, error)
6769
}

config.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ import (
1111

1212
// Config of the temporal client and dependent services.
1313
type Config struct {
14-
Metrics *Metrics `mapstructure:"metrics"`
15-
Activities *pool.Config `mapstructure:"activities"`
16-
TLS *TLS `mapstructure:"tls, omitempty"`
14+
Metrics *Metrics `mapstructure:"metrics"`
15+
Activities *pool.Config `mapstructure:"activities"`
16+
TLS *TLS `mapstructure:"tls, omitempty"`
17+
DisableActivityWorkers bool `mapstructure:"disable_activity_workers"`
1718

1819
Address string `mapstructure:"address"`
1920
Namespace string `mapstructure:"namespace"`

go.mod

+12-7
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,26 @@ go 1.23
55
toolchain go1.23.2
66

77
require (
8-
github.com/goccy/go-json v0.10.3
8+
github.com/goccy/go-json v0.10.4
99
github.com/google/uuid v1.6.0
1010
github.com/roadrunner-server/api/v4 v4.16.0
1111
github.com/roadrunner-server/endure/v2 v2.6.1
1212
github.com/roadrunner-server/errors v1.4.1
1313
github.com/roadrunner-server/events v1.0.1
14-
github.com/roadrunner-server/pool v1.1.1
14+
github.com/roadrunner-server/pool v1.1.2
1515
github.com/stretchr/testify v1.10.0
1616
github.com/uber-go/tally/v4 v4.1.17-0.20240412215630-22fe011f5ff0
1717
go.temporal.io/api v1.43.0
1818
go.temporal.io/sdk v1.31.0
1919
go.temporal.io/sdk/contrib/tally v0.2.0
2020
go.temporal.io/server v1.25.2
2121
go.uber.org/zap v1.27.0
22-
google.golang.org/protobuf v1.35.2
22+
google.golang.org/protobuf v1.36.0
23+
)
24+
25+
require (
26+
go.opentelemetry.io/otel v1.33.0 // indirect
27+
go.opentelemetry.io/otel/sdk v1.33.0 // indirect
2328
)
2429

2530
replace github.com/uber-go/tally/v4 => github.com/uber-go/tally/v4 v4.1.10
@@ -56,14 +61,14 @@ require (
5661
github.com/yusufpapurcu/wmi v1.2.4 // indirect
5762
go.uber.org/atomic v1.11.0 // indirect
5863
go.uber.org/multierr v1.11.0 // indirect
59-
golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d // indirect
64+
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
6065
golang.org/x/net v0.32.0 // indirect
6166
golang.org/x/sync v0.10.0 // indirect
6267
golang.org/x/sys v0.28.0 // indirect
6368
golang.org/x/text v0.21.0 // indirect
6469
golang.org/x/time v0.8.0 // indirect
65-
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a // indirect
66-
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
67-
google.golang.org/grpc v1.68.1
70+
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484 // indirect
71+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484 // indirect
72+
google.golang.org/grpc v1.69.0
6873
gopkg.in/yaml.v3 v3.0.1 // indirect
6974
)

go.sum

+22-14
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,14 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
4545
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
4646
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
4747
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
48+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
49+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
4850
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
4951
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
5052
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
5153
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
52-
github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA=
53-
github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
54+
github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM=
55+
github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
5456
github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
5557
github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4=
5658
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -179,8 +181,8 @@ github.com/roadrunner-server/events v1.0.1 h1:waCkKhxhzdK3VcI1xG22l+h+0J+Nfdpxjh
179181
github.com/roadrunner-server/events v1.0.1/go.mod h1:WZRqoEVaFm209t52EuoT7ISUtvX6BrCi6bI/7pjkVC0=
180182
github.com/roadrunner-server/goridge/v3 v3.8.3 h1:XmjrOFnI6ZbQTPaP39DEk8KwLUNTgjluK3pcZaW6ixQ=
181183
github.com/roadrunner-server/goridge/v3 v3.8.3/go.mod h1:4TZU8zgkKIZCsH51qwGMpvyXCT59u/8z6q8sCe4ZGAQ=
182-
github.com/roadrunner-server/pool v1.1.1 h1:ThMGASxLV/GvVXk/J80E2yY1nozfPwFlv93fH0xYDMg=
183-
github.com/roadrunner-server/pool v1.1.1/go.mod h1:p6t1w4hcNgZGTgap+RYqoPIQ9jDXJwsr217+ROsVFro=
184+
github.com/roadrunner-server/pool v1.1.2 h1:jdXGh/WG2YUp7SrlvXP+ZDYbCWvHdAaecYOHL4+ub3c=
185+
github.com/roadrunner-server/pool v1.1.2/go.mod h1:KSdUYPMXHtCp4Qky31DCEV7n6ArETv9y1GyvzroY9mM=
184186
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
185187
github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
186188
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
@@ -222,6 +224,12 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
222224
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
223225
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
224226
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
227+
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
228+
go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw=
229+
go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ=
230+
go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM=
231+
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
232+
go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s=
225233
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
226234
go.temporal.io/api v1.5.0/go.mod h1:BqKxEJJYdxb5dqf0ODfzfMxh8UEQ5L3zKS51FiIYYkA=
227235
go.temporal.io/api v1.43.0 h1:lBhq+u5qFJqGMXwWsmg/i8qn1UA/3LCwVc88l2xUMHg=
@@ -255,8 +263,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
255263
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
256264
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
257265
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
258-
golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d h1:0olWaB5pg3+oychR51GUVCEsGkeCU/2JxjBgIo4f3M0=
259-
golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
266+
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo=
267+
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
260268
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
261269
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
262270
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@@ -361,10 +369,10 @@ google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfG
361369
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
362370
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
363371
google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
364-
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a h1:OAiGFfOiA0v9MRYsSidp3ubZaBnteRUyn3xB2ZQ5G/E=
365-
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a/go.mod h1:jehYqy3+AhJU9ve55aNOaSml7wUXjF9x6z2LcCfpAhY=
366-
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o=
367-
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
372+
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484 h1:ChAdCYNQFDk5fYvFZMywKLIijG7TC2m1C2CMEu11G3o=
373+
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484/go.mod h1:KRUmxRI4JmbpAm8gcZM4Jsffi859fo5LQjILwuqj9z8=
374+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484 h1:Z7FRVJPSMaHQxD0uXU8WdgFh8PseLM8Q8NzhnpMrBhQ=
375+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484/go.mod h1:lcTa1sDdWEIHMWlITnIczmw5w60CF9ffkb8Z+DVmmjA=
368376
google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
369377
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
370378
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
@@ -374,8 +382,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
374382
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
375383
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
376384
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
377-
google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0=
378-
google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw=
385+
google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI=
386+
google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
379387
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
380388
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
381389
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -388,8 +396,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
388396
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
389397
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
390398
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
391-
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
392-
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
399+
google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ=
400+
google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
393401
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
394402
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
395403
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)