|
51 | 51 | import java.lang.reflect.InvocationTargetException; |
52 | 52 | import java.time.Duration; |
53 | 53 | import java.time.Instant; |
54 | | -import java.time.ZoneId; |
55 | 54 | import java.time.ZoneOffset; |
56 | 55 | import java.util.ArrayList; |
57 | 56 | import java.util.Collection; |
|
72 | 71 | import java.util.concurrent.TimeUnit; |
73 | 72 | import java.util.concurrent.atomic.AtomicBoolean; |
74 | 73 | import java.util.concurrent.atomic.AtomicReference; |
75 | | -import java.util.function.Consumer; |
76 | 74 | import java.util.function.Supplier; |
77 | 75 | import java.util.stream.Collectors; |
78 | 76 |
|
@@ -936,70 +934,19 @@ public void setLatestApplicationVersion(String versionName) { |
936 | 934 | systemDatabase.updateApplicationVersionTimestamp(versionName, Instant.now()); |
937 | 935 | } |
938 | 936 |
|
939 | | - public static void createSchedule( |
940 | | - @NonNull String scheduleName, |
941 | | - @NonNull String workflowName, |
942 | | - @NonNull String className, |
943 | | - @NonNull String schedule, |
944 | | - @Nullable Object context, |
945 | | - boolean automaticBackfill, |
946 | | - @Nullable ZoneId cronTimeZone, |
947 | | - @Nullable String queueName, |
948 | | - @NonNull Consumer<WorkflowSchedule> scheduleConsumer) { |
949 | | - Objects.requireNonNull(scheduleName, "scheduleName cannot be null"); |
950 | | - Objects.requireNonNull(workflowName, "workflowName cannot be null"); |
951 | | - Objects.requireNonNull(className, "className cannot be null"); |
952 | | - // validate schedule CRON |
953 | | - SchedulerService.CRON_PARSER.parse(Objects.requireNonNull(schedule, "schedule cannot be null")); |
954 | | - |
955 | | - final var wfSchedule = |
956 | | - new WorkflowSchedule( |
957 | | - UUID.randomUUID().toString(), |
958 | | - scheduleName, |
959 | | - workflowName, |
960 | | - className, |
961 | | - schedule, |
962 | | - ScheduleStatus.ACTIVE, |
963 | | - context, |
964 | | - null, |
965 | | - automaticBackfill, |
966 | | - cronTimeZone, |
967 | | - queueName); |
| 937 | + public void createSchedule(@NonNull WorkflowSchedule schedule) { |
968 | 938 |
|
969 | | - scheduleConsumer.accept(wfSchedule); |
970 | | - } |
971 | | - |
972 | | - public void createSchedule( |
973 | | - @NonNull String scheduleName, |
974 | | - @NonNull String workflowName, |
975 | | - @NonNull String className, |
976 | | - @NonNull String schedule, |
977 | | - @Nullable Object context, |
978 | | - boolean automaticBackfill, |
979 | | - @Nullable ZoneId cronTimeZone, |
980 | | - @Nullable String queueName) { |
| 939 | + Objects.requireNonNull(schedule, "schedule cannot be null"); |
| 940 | + validateQueue(schedule.queueName()); |
| 941 | + validateWorkflow(schedule.workflowName(), schedule.className()); |
981 | 942 |
|
982 | | - validateQueue(queueName); |
983 | | - validateWorkflow(workflowName, className); |
984 | | - |
985 | | - DBOSExecutor.createSchedule( |
986 | | - scheduleName, |
987 | | - workflowName, |
988 | | - className, |
989 | | - schedule, |
990 | | - context, |
991 | | - automaticBackfill, |
992 | | - cronTimeZone, |
993 | | - queueName, |
994 | | - wfSchedule -> { |
995 | | - this.callFunctionAsStep( |
996 | | - () -> { |
997 | | - systemDatabase.createSchedule(wfSchedule); |
998 | | - return null; |
999 | | - }, |
1000 | | - "DBOS.createSchedule", |
1001 | | - null); |
1002 | | - }); |
| 943 | + this.callFunctionAsStep( |
| 944 | + () -> { |
| 945 | + systemDatabase.createSchedule(schedule); |
| 946 | + return null; |
| 947 | + }, |
| 948 | + "DBOS.createSchedule", |
| 949 | + null); |
1003 | 950 | } |
1004 | 951 |
|
1005 | 952 | public Optional<WorkflowSchedule> getSchedule(String name) { |
|
0 commit comments