@@ -250,16 +250,6 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskScheduledEventAsHeartbeat(
250
250
return nil , m .ms .createInternalServerError (opTag )
251
251
}
252
252
253
- // Task queue and workflow task timeout should already be set from workflow execution started event
254
- taskQueue := & taskqueuepb.TaskQueue {}
255
- if m .ms .IsStickyTaskQueueEnabled () {
256
- taskQueue .Name = m .ms .executionInfo .StickyTaskQueue
257
- taskQueue .Kind = enumspb .TASK_QUEUE_KIND_STICKY
258
- } else {
259
- taskQueue .Name = m .ms .executionInfo .TaskQueue
260
- taskQueue .Kind = enumspb .TASK_QUEUE_KIND_NORMAL
261
- }
262
-
263
253
// Flush any buffered events before creating the workflow task, otherwise it will result in invalid IDs for transient
264
254
// workflow task and will cause in timeout processing to not work for transient workflow tasks
265
255
if m .ms .HasBufferedEvents () {
@@ -280,21 +270,27 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskScheduledEventAsHeartbeat(
280
270
}
281
271
}
282
272
283
- var newWorkflowTaskEvent * historypb.HistoryEvent
284
- scheduledEventID := m .ms .GetNextEventID () // we will generate the schedule event later for repeatedly failing workflow tasks
285
- // Avoid creating new history events when workflow tasks are continuously failing
286
- scheduledTime := m .ms .timeSource .Now ().UTC ()
273
+ scheduleTime := m .ms .timeSource .Now ().UTC ()
287
274
attempt := m .ms .executionInfo .WorkflowTaskAttempt
275
+ // TaskQueue should already be set from workflow execution started event.
276
+ taskQueue := m .ms .TaskQueue ()
277
+ // DefaultWorkflowTaskTimeout should already be set from workflow execution started event.
288
278
startToCloseTimeout := m .getStartToCloseTimeout (m .ms .executionInfo .DefaultWorkflowTaskTimeout , attempt )
279
+
280
+ var scheduledEvent * historypb.HistoryEvent
281
+ var scheduledEventID int64
282
+
289
283
if attempt == 1 {
290
- newWorkflowTaskEvent = m .ms .hBuilder .AddWorkflowTaskScheduledEvent (
284
+ scheduledEvent = m .ms .hBuilder .AddWorkflowTaskScheduledEvent (
291
285
taskQueue ,
292
286
startToCloseTimeout ,
293
287
attempt ,
294
- m . ms . timeSource . Now () ,
288
+ scheduleTime ,
295
289
)
296
- scheduledEventID = newWorkflowTaskEvent .GetEventId ()
297
- scheduledTime = timestamp .TimeValue (newWorkflowTaskEvent .GetEventTime ())
290
+ scheduledEventID = scheduledEvent .GetEventId ()
291
+ } else {
292
+ // WorkflowTaskScheduledEvent will be created later.
293
+ scheduledEventID = m .ms .GetNextEventID ()
298
294
}
299
295
300
296
workflowTask , err := m .ReplicateWorkflowTaskScheduledEvent (
@@ -303,7 +299,7 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskScheduledEventAsHeartbeat(
303
299
taskQueue ,
304
300
startToCloseTimeout ,
305
301
attempt ,
306
- & scheduledTime ,
302
+ & scheduleTime ,
307
303
originalScheduledTimestamp ,
308
304
)
309
305
if err != nil {
@@ -446,12 +442,8 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskCompletedEvent(
446
442
m .beforeAddWorkflowTaskCompletedEvent ()
447
443
if workflowTask .Attempt > 1 {
448
444
// Create corresponding WorkflowTaskSchedule and WorkflowTaskStarted events for workflow tasks we have been retrying
449
- taskQueue := & taskqueuepb.TaskQueue {
450
- Name : m .ms .executionInfo .TaskQueue ,
451
- Kind : enumspb .TASK_QUEUE_KIND_NORMAL ,
452
- }
453
445
scheduledEvent := m .ms .hBuilder .AddWorkflowTaskScheduledEvent (
454
- taskQueue ,
446
+ m . ms . TaskQueue () ,
455
447
workflowTask .WorkflowTaskTimeout ,
456
448
workflowTask .Attempt ,
457
449
timestamp .TimeValue (workflowTask .ScheduledTime ).UTC (),
@@ -684,7 +676,7 @@ func (m *workflowTaskStateMachine) GetWorkflowTaskInfo(
684
676
return nil , false
685
677
}
686
678
687
- func (m * workflowTaskStateMachine ) CreateTransientWorkflowTaskEvents (
679
+ func (m * workflowTaskStateMachine ) GetTransientWorkflowTaskInfo (
688
680
workflowTask * WorkflowTaskInfo ,
689
681
identity string ,
690
682
) * historyspb.TransientWorkflowTaskInfo {
@@ -735,15 +727,6 @@ func (m *workflowTaskStateMachine) CreateTransientWorkflowTaskEvents(
735
727
}
736
728
737
729
func (m * workflowTaskStateMachine ) getWorkflowTaskInfo () * WorkflowTaskInfo {
738
- taskQueue := & taskqueuepb.TaskQueue {}
739
- if m .ms .IsStickyTaskQueueEnabled () {
740
- taskQueue .Name = m .ms .executionInfo .StickyTaskQueue
741
- taskQueue .Kind = enumspb .TASK_QUEUE_KIND_STICKY
742
- } else {
743
- taskQueue .Name = m .ms .executionInfo .TaskQueue
744
- taskQueue .Kind = enumspb .TASK_QUEUE_KIND_NORMAL
745
- }
746
-
747
730
return & WorkflowTaskInfo {
748
731
Version : m .ms .executionInfo .WorkflowTaskVersion ,
749
732
ScheduledEventID : m .ms .executionInfo .WorkflowTaskScheduledEventId ,
@@ -753,7 +736,7 @@ func (m *workflowTaskStateMachine) getWorkflowTaskInfo() *WorkflowTaskInfo {
753
736
Attempt : m .ms .executionInfo .WorkflowTaskAttempt ,
754
737
StartedTime : m .ms .executionInfo .WorkflowTaskStartedTime ,
755
738
ScheduledTime : m .ms .executionInfo .WorkflowTaskScheduledTime ,
756
- TaskQueue : taskQueue ,
739
+ TaskQueue : m . ms . TaskQueue () ,
757
740
OriginalScheduledTime : m .ms .executionInfo .WorkflowTaskOriginalScheduledTime ,
758
741
}
759
742
}
0 commit comments