Skip to content

Commit

Permalink
Add GetUnhandledSignalNames
Browse files Browse the repository at this point in the history
  • Loading branch information
longquanzheng committed Jan 4, 2023
1 parent 6cd0267 commit f245999
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
11 changes: 8 additions & 3 deletions internal/internal_workflow.go
Expand Up @@ -549,7 +549,7 @@ func executeDispatcher(ctx Context, dispatcher dispatcher) {
return
}

us := getWorkflowEnvOptions(ctx).getUnhandledSignals()
us := getWorkflowEnvOptions(ctx).getUnhandledSignalNames()
if len(us) > 0 {
env.GetLogger().Info("Workflow has unhandled signals", zap.Strings("SignalNames", us))
env.GetMetricsScope().Counter(metrics.UnhandledSignalsCounter).Inc(1)
Expand Down Expand Up @@ -1264,8 +1264,13 @@ func (w *workflowOptions) getSignalChannel(ctx Context, signalName string) Chann
return ch
}

// getUnhandledSignals checks if there are any signal channels that have data to be consumed.
func (w *workflowOptions) getUnhandledSignals() []string {
// GetUnhandledSignalNames returns signal names that have not been consumed.
func GetUnhandledSignalNames(ctx Context) []string {
return getWorkflowEnvOptions(ctx).getUnhandledSignalNames()
}

// getUnhandledSignalNames returns signal names that have not been consumed.
func (w *workflowOptions) getUnhandledSignalNames() []string {
unhandledSignals := []string{}
for k, c := range w.signalChannels {
ch := c.(*channelImpl)
Expand Down
4 changes: 2 additions & 2 deletions internal/internal_workflow_test.go
Expand Up @@ -510,14 +510,14 @@ func signalWorkflowTest(ctx Context) ([]byte, error) {
s.Select(ctx)

// Check un handled signals.
list := getWorkflowEnvOptions(ctx).getUnhandledSignals()
list := getWorkflowEnvOptions(ctx).getUnhandledSignalNames()
if len(list) != 1 || list[0] != "testSig3" {
panic("expecting one unhandled signal")
}
ch3 := GetSignalChannel(ctx, "testSig3")
ch3.Receive(ctx, &v)
result += v
list = getWorkflowEnvOptions(ctx).getUnhandledSignals()
list = getWorkflowEnvOptions(ctx).getUnhandledSignalNames()
if len(list) != 0 {
panic("expecting no unhandled signals")
}
Expand Down
5 changes: 5 additions & 0 deletions workflow/workflow.go
Expand Up @@ -192,6 +192,11 @@ func GetLogger(ctx Context) *zap.Logger {
return internal.GetLogger(ctx)
}

// GetUnhandledSignalNames returns signal names that have not been consumed.
func GetUnhandledSignalNames(ctx Context) []string {
return internal.GetUnhandledSignalNames(ctx)
}

// GetMetricsScope returns a metrics scope to be used in workflow's context
func GetMetricsScope(ctx Context) tally.Scope {
return internal.GetMetricsScope(ctx)
Expand Down

0 comments on commit f245999

Please sign in to comment.