@@ -24,8 +24,12 @@ var luaScripts embed.FS
2424var (
2525 createWorkflowInstanceCmd * redis.Script
2626 completeWorkflowTaskCmd * redis.Script
27+ completeActivityTaskCmd * redis.Script
28+ deleteInstanceCmd * redis.Script
2729 futureEventsCmd * redis.Script
2830 expireWorkflowInstanceCmd * redis.Script
31+ cancelWorkflowInstanceCmd * redis.Script
32+ signalWorkflowCmd * redis.Script
2933)
3034
3135func NewRedisBackend (client redis.UniversalClient , opts ... RedisBackendOption ) (* redisBackend , error ) {
@@ -60,26 +64,16 @@ func NewRedisBackend(client redis.UniversalClient, opts ...RedisBackendOption) (
6064 activityQueue : activityQueue ,
6165 }
6266
63- // Preload scripts here. Usually redis-go attempts to execute them first, and if redis doesn't know
64- // them, loads them. This doesn't work when using (transactional) pipelines, so eagerly load them on startup.
65- cmds := map [string ]* redis.StringCmd {
66- "deleteInstanceCmd" : deleteCmd .Load (ctx , rb .rdb ),
67- "addPayloadsCmd" : addPayloadsCmd .Load (ctx , rb .rdb ),
68- }
69- for name , cmd := range cmds {
70- // fmt.Println(name, cmd.Val())
71-
72- if cmd .Err () != nil {
73- return nil , fmt .Errorf ("loading redis script: %v %w" , name , cmd .Err ())
74- }
75- }
76-
7767 // Load all Lua scripts
7868 cmdMapping := map [string ]* * redis.Script {
79- "create_workflow_instance.lua" : & createWorkflowInstanceCmd ,
69+ "cancel_workflow_instance.lua" : & cancelWorkflowInstanceCmd ,
70+ "complete_activity_task.lua" : & completeActivityTaskCmd ,
8071 "complete_workflow_task.lua" : & completeWorkflowTaskCmd ,
81- "schedule_future_events.lua" : & futureEventsCmd ,
72+ "create_workflow_instance.lua" : & createWorkflowInstanceCmd ,
73+ "delete_instance.lua" : & deleteInstanceCmd ,
8274 "expire_workflow_instance.lua" : & expireWorkflowInstanceCmd ,
75+ "schedule_future_events.lua" : & futureEventsCmd ,
76+ "signal_workflow.lua" : & signalWorkflowCmd ,
8377 }
8478
8579 if err := loadScripts (ctx , rb .rdb , cmdMapping ); err != nil {
0 commit comments