diff --git a/src/main/java/com/kingsrook/qbits/edi/processes/OutboundProcesses.java b/src/main/java/com/kingsrook/qbits/edi/processes/OutboundProcesses.java index 76f081f..9c81d9c 100644 --- a/src/main/java/com/kingsrook/qbits/edi/processes/OutboundProcesses.java +++ b/src/main/java/com/kingsrook/qbits/edi/processes/OutboundProcesses.java @@ -61,7 +61,11 @@ public class OutboundProcesses implements BackendStep .withStep(new QBackendStepMetaData().withName("execute").withCode(new QCodeReference(OutboundProcesses.class))); if(config.getSchedulerName() != null && (seconds != null || cron != null)) { - process.withSchedule(new QScheduleMetaData().withSchedulerName(config.getSchedulerName()).withRepeatSeconds(seconds).withCronExpression(cron).withCronTimeZoneId("UTC")); + ////////////////////////////////////////////////////////////////////////// + // core validation refuses a cron time zone on a repeat schedule // + ////////////////////////////////////////////////////////////////////////// + process.withSchedule(new QScheduleMetaData().withSchedulerName(config.getSchedulerName()).withRepeatSeconds(seconds).withCronExpression(cron) + .withCronTimeZoneId(cron == null ? null : "UTC")); } return (process); } diff --git a/src/test/java/com/kingsrook/qbits/edi/OutboundTest.java b/src/test/java/com/kingsrook/qbits/edi/OutboundTest.java index 979684f..06ece5a 100644 --- a/src/test/java/com/kingsrook/qbits/edi/OutboundTest.java +++ b/src/test/java/com/kingsrook/qbits/edi/OutboundTest.java @@ -329,4 +329,20 @@ class OutboundTest { return (SystemWrites.call(() -> EdiRecords.query(table, new QQueryFilter()))); } + + + /******************************************************************************* + ** Repeat-seconds worker schedules carry no cron time zone (core instance + ** validation refuses one on a non-cron schedule); cron schedules use UTC. + *******************************************************************************/ + @Test + void repeatSchedulesHaveNoCronTimeZone() + { + com.kingsrook.qbits.edi.EdiQBitConfig config = new com.kingsrook.qbits.edi.EdiQBitConfig().withSchedulerName("scheduler"); + var repeat = com.kingsrook.qbits.edi.processes.OutboundProcesses.process("edi_test_repeat", config, 15, null).getSchedule(); + assertThat(repeat.getRepeatSeconds()).isEqualTo(15); + assertThat(repeat.getCronTimeZoneId()).isNull(); + var cron = com.kingsrook.qbits.edi.processes.OutboundProcesses.process("edi_test_cron", config, null, "0 0 * * * ?").getSchedule(); + assertThat(cron.getCronTimeZoneId()).isEqualTo("UTC"); + } }