Skip to content

Commit 2cdafaf

Browse files
committed
add options of ActorConfig
1 parent c2dfec6 commit 2cdafaf

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

actor/config/config.go

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ import "github.com/dapr/go-sdk/actor/codec/constant"
1717

1818
// ActorConfig is Actor's configuration struct.
1919
type ActorConfig struct {
20-
SerializerType string
20+
SerializerType string
21+
IdleTimeout string
22+
ScanInterval string
23+
DrainOngingCallTimeout string
24+
DrainBalancedActors bool
2125
}
2226

2327
// Option is option function of ActorConfig.
@@ -30,6 +34,34 @@ func WithSerializerName(serializerType string) Option {
3034
}
3135
}
3236

37+
// WithIdleTimeout set serializer type of the actor as @idleTimeout.
38+
func WithIdleTimeout(idleTimeout string) Option {
39+
return func(config *ActorConfig) {
40+
config.IdleTimeout = idleTimeout
41+
}
42+
}
43+
44+
// WithScanInterval set serializer type of the actor as @scanInterval.
45+
func WithScanInterval(scanInterval string) Option {
46+
return func(config *ActorConfig) {
47+
config.ScanInterval = scanInterval
48+
}
49+
}
50+
51+
// WithDrainOngingCallTimeout set serializer type of the actor as @drainOngingCallTimeout.
52+
func WithDrainOngingCallTimeout(drainOngingCallTimeout string) Option {
53+
return func(config *ActorConfig) {
54+
config.DrainOngingCallTimeout = drainOngingCallTimeout
55+
}
56+
}
57+
58+
// WithDrainBalancedActors set serializer type of the actor as @drainBalancedActors.
59+
func WithDrainBalancedActors(drainBalancedActors bool) Option {
60+
return func(config *ActorConfig) {
61+
config.DrainBalancedActors = drainBalancedActors
62+
}
63+
}
64+
3365
// GetConfigFromOptions get final ActorConfig set by @opts.
3466
func GetConfigFromOptions(opts ...Option) *ActorConfig {
3567
conf := &ActorConfig{

actor/config/config_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,16 @@ func TestRegisterActorTimer(t *testing.T) {
3131
t.Run("get config with option", func(t *testing.T) {
3232
config := GetConfigFromOptions(
3333
WithSerializerName("mockSerializerType"),
34+
WithIdleTimeout("1m"),
35+
WithScanInterval("10s"),
36+
WithDrainOngingCallTimeout("10s"),
37+
WithDrainBalancedActors(true),
3438
)
3539
assert.NotNil(t, config)
3640
assert.Equal(t, "mockSerializerType", config.SerializerType)
41+
assert.Equal(t, "1m", config.IdleTimeout)
42+
assert.Equal(t, "10s", config.ScanInterval)
43+
assert.Equal(t, "10s", config.DrainOngingCallTimeout)
44+
assert.Equal(t, true, config.DrainBalancedActors)
3745
})
3846
}

0 commit comments

Comments
 (0)