from ecflow import Defs,Suite,Task,Day,Date,Cron,Time,TimeSlot,TimeSeries defs = Defs() s1 = defs.add_suite("s1") t1 = s1.add_task("date") t1.add_date(1, 0, 0) # first of every month and every year t1.add_date(Date("2.*.*")) # second of every month and every year t1.add_date(28,2,2026) # 28 february 2026 t2 = s1.add_task("day") t2.add_day("monday") t2.add_day(Days.tuesday) t3 = s1.add_task("time") t3.add_time("+00:30") # 30 minutes after suite has begun t3.add_time("+00:30 20:00 01:00") # 00:30,01:30,02:30....07:30 after suite start t3.add_time(0, 59, True) # 00:59 - 59 minutes past midnight t3.add_time(Time(TimeSlot(20, 10))) # 20:10 - 10 minutes pas eight t3.add_time(Time(TimeSlot(20, 20), True)) # +20:20 - 20 minutes and 20 hours, after suite start start = TimeSlot(0, 0) finish = TimeSlot(23, 0) incr = TimeSlot(0, 30) time_series = TimeSeries(start, finish, incr, True) t3.add_time(Time(time_series)) t3.add_time(Time(0, 10)) # 00:10 t3.add_time(Time("+00:40")) # +00:40 t3.add_time(Time("+00:40 20:00 01:00")) # 00:40,01:40,02:30...17:40 after suite start cron = Cron() cron.set_week_days( [0,1,2,3,4,5,6] ) cron.set_days_of_month( [1,2,3,4,5,6] ) cron.set_months( [1,2,3,4,5,6] ) cron.set_time_series( "+00:00 23:00 00:30" ) s1.add_task("cron").add_cron( cron );
The following show alternative example that produce the same definition:
start = TimeSlot(0, 0) finish = TimeSlot(23, 0) incr = TimeSlot(0, 30) time_series = TimeSeries(start, finish, incr, True) cron = Cron() cron.set_week_days( [0,1,2,3,4,5,6] ) cron.set_days_of_month( [1,2,3,4,5,6] ) cron.set_months( [1,2,3,4,5,6] ) cron.set_time_series( "+00:00 23:00 00:30" ) defs = Defs().add( Suite("s1").add( Task("date").add( Date(1, 0, 0), Date("2.*.*"), Date(28,2,2026)), Task("day").add( Day("monday"), Day(Days.tuesday)), Task("time").add( Time("+00:30"), Time("+00:30 20:00 01:00"), Time(0, 59, True), Time(TimeSlot(20, 10)), Time(TimeSlot(20, 20), True), Time(time_series), Time(0, 10), Time("+00:40"), Time("+00:40 20:00 01:00")), Task("cron").add( cron))) | start = TimeSlot(0, 0) finish = TimeSlot(23, 0) incr = TimeSlot(0, 30) time_series = TimeSeries(start, finish, incr, True) cron = Cron() cron.set_week_days( [0,1,2,3,4,5,6] ) cron.set_days_of_month( [1,2,3,4,5,6] ) cron.set_months( [1,2,3,4,5,6] ) cron.set_time_series( "+00:00 23:00 00:30" ) defs = Defs().add( Suite("s1").add( Task("date"),Task("day"),Task("time"),Task("cron"))) defs.s1.date += [ Date(1, 0, 0), Date("2.*.*"), Date(28,2,2026) ] defs.s1.day += [ Day("monday"), Day(Days.tuesday) ] defs.s1.time += [ Time("+00:30"), Time("+00:30 20:00 01:00"), Time(0, 59, True), Time(TimeSlot(20, 10)), Time(TimeSlot(20, 20), True), Time(time_series), Time(0, 10), Time("+00:40"), Time("+00:40 20:00 01:00") ] defs.s1.cron += [cron] |