Skip to content

Instantly share code, notes, and snippets.

@mmxmb
Created June 20, 2023 21:29
Show Gist options
  • Save mmxmb/a9654724c3e0c24b1e062dce48d3893a to your computer and use it in GitHub Desktop.
Save mmxmb/a9654724c3e0c24b1e062dce48d3893a to your computer and use it in GitHub Desktop.
package interceptor
import (
"fmt"
"go.temporal.io/sdk/interceptor"
"go.temporal.io/sdk/workflow"
)
type blobSizeLimitInterceptor struct {
interceptor.WorkerInterceptorBase
}
func NewBlobSizeLimitInterceptor() interceptor.WorkerInterceptor {
return &blobSizeLimitInterceptor{}
}
func (*blobSizeLimitInterceptor) InterceptWorkflow(
ctx workflow.Context,
next interceptor.WorkflowInboundInterceptor,
) interceptor.WorkflowInboundInterceptor {
i := &blobSizeLimitWorkflowInboundInterceptor{}
i.Next = next
return i
}
type blobSizeLimitWorkflowInboundInterceptor struct {
interceptor.WorkflowInboundInterceptorBase
}
func (i *blobSizeLimitWorkflowInboundInterceptor) Init(outbound interceptor.WorkflowOutboundInterceptor) error {
injected := &blobSizeLimitWorkflowOutboundInterceptor{}
injected.Next = outbound
return i.Next.Init(injected)
}
type blobSizeLimitWorkflowOutboundInterceptor struct {
interceptor.WorkflowOutboundInterceptorBase
}
func (i *blobSizeLimitWorkflowOutboundInterceptor) ExecuteActivity(
ctx workflow.Context,
activityType string,
args ...interface{},
) workflow.Future {
fmt.Printf("executeActivity header %s(%+v): %+v\n", activityType, args, interceptor.WorkflowHeader(ctx))
return i.Next.ExecuteActivity(ctx, activityType, args...)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment