18
18
package org .apache .dolphinscheduler .api .service .impl ;
19
19
20
20
import static org .apache .dolphinscheduler .common .Constants .CMDPARAM_COMPLEMENT_DATA_END_DATE ;
21
+ import static org .apache .dolphinscheduler .common .Constants .CMDPARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST ;
21
22
import static org .apache .dolphinscheduler .common .Constants .CMDPARAM_COMPLEMENT_DATA_START_DATE ;
22
23
import static org .apache .dolphinscheduler .common .Constants .CMD_PARAM_RECOVER_PROCESS_ID_STRING ;
23
24
import static org .apache .dolphinscheduler .common .Constants .CMD_PARAM_START_NODES ;
77
78
import org .apache .commons .collections .MapUtils ;
78
79
import org .apache .commons .lang .StringUtils ;
79
80
81
+ import java .time .ZoneId ;
80
82
import java .util .ArrayList ;
81
83
import java .util .Date ;
82
84
import java .util .HashMap ;
83
85
import java .util .HashSet ;
84
86
import java .util .List ;
85
87
import java .util .Map ;
86
88
import java .util .Set ;
89
+ import java .util .TimeZone ;
87
90
import java .util .stream .Collectors ;
88
91
89
92
import org .slf4j .Logger ;
@@ -704,14 +707,16 @@ protected int createComplementCommandList(Date start, Date end, RunMode runMode,
704
707
logger .warn ("The startDate {} is later than the endDate {}" , start , end );
705
708
break ;
706
709
}
707
- cmdParam .put (CMDPARAM_COMPLEMENT_DATA_START_DATE , DateUtils .dateToString (start ));
708
- cmdParam .put (CMDPARAM_COMPLEMENT_DATA_END_DATE , DateUtils .dateToString (end ));
709
- command .setCommandParam (JSONUtils .toJsonString (cmdParam ));
710
- createCount = processService .createCommand (command );
711
710
712
711
// dependent process definition
713
712
List <Schedule > schedules = processService .queryReleaseSchedulerListByProcessDefinitionCode (command .getProcessDefinitionCode ());
714
713
714
+ cmdParam .put (CMDPARAM_COMPLEMENT_DATA_START_DATE , DateUtils .dateToString (start , ZoneId .systemDefault ().getId ()));
715
+ cmdParam .put (CMDPARAM_COMPLEMENT_DATA_END_DATE , DateUtils .dateToString (end , ZoneId .systemDefault ().getId ()));
716
+ cmdParam .put (CMDPARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST , JSONUtils .toJsonString (CronUtils .getSelfFireDateList (start , end , schedules )));
717
+ command .setCommandParam (JSONUtils .toJsonString (cmdParam ));
718
+ createCount = processService .createCommand (command );
719
+
715
720
if (schedules .isEmpty () || complementDependentMode == ComplementDependentMode .OFF_MODE ) {
716
721
logger .info ("process code: {} complement dependent in off mode or schedule's size is 0, skip "
717
722
+ "dependent complement data" , command .getProcessDefinitionCode ());
@@ -727,6 +732,8 @@ protected int createComplementCommandList(Date start, Date end, RunMode runMode,
727
732
break ;
728
733
}
729
734
735
+ logger .info ("before createComplementCommandList {} {}" , start , end );
736
+
730
737
List <Date > listDate = new ArrayList <>();
731
738
List <Schedule > schedules = processService .queryReleaseSchedulerListByProcessDefinitionCode (command .getProcessDefinitionCode ());
732
739
listDate .addAll (CronUtils .getSelfFireDateList (start , end , schedules ));
@@ -759,9 +766,21 @@ protected int createComplementCommandList(Date start, Date end, RunMode runMode,
759
766
endDateIndex += singleCommandItems ;
760
767
}
761
768
762
- cmdParam .put (CMDPARAM_COMPLEMENT_DATA_START_DATE , DateUtils .dateToString (listDate .get (startDateIndex )));
763
- cmdParam .put (CMDPARAM_COMPLEMENT_DATA_END_DATE , DateUtils .dateToString (listDate .get (endDateIndex )));
769
+ Date startDate = listDate .get (startDateIndex );
770
+ Date endDate = listDate .get (endDateIndex );
771
+
772
+ cmdParam .put (CMDPARAM_COMPLEMENT_DATA_START_DATE , DateUtils .dateToString (startDate , ZoneId .systemDefault ().getId ()));
773
+ cmdParam .put (CMDPARAM_COMPLEMENT_DATA_END_DATE , DateUtils .dateToString (endDate , ZoneId .systemDefault ().getId ()));
774
+ cmdParam .put (CMDPARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST , JSONUtils .toJsonString (CronUtils .getSelfFireDateList (startDate , endDate , schedules )));
764
775
command .setCommandParam (JSONUtils .toJsonString (cmdParam ));
776
+
777
+ logger .info ("before create complement command: startDate:{}, startStr:{}, endDate:{}, endStr:{}, complement date list: {}" ,
778
+ listDate .get (startDateIndex ),
779
+ cmdParam .get (CMDPARAM_COMPLEMENT_DATA_START_DATE ),
780
+ listDate .get (endDateIndex ),
781
+ cmdParam .get (CMDPARAM_COMPLEMENT_DATA_END_DATE ),
782
+ cmdParam .get (CMDPARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST ));
783
+
765
784
processService .createCommand (command );
766
785
767
786
if (schedules .isEmpty () || complementDependentMode == ComplementDependentMode .OFF_MODE ) {
0 commit comments