Bradley Hurley
09/08/2022, 8:35 PMKhuyen Tran
09/08/2022, 9:32 PMBradley Hurley
09/08/2022, 9:34 PMKhuyen Tran
09/09/2022, 3:04 PMBradley Hurley
09/09/2022, 3:14 PM@task(log_stdout=True)
def pprinter(val):
print(val)
schedule = Schedule(
# emit an event every day
clocks=[
IntervalClock(
start_date=pendulum.datetime(2022, 9, 8, 8, tz="America/New_York"),
interval=timedelta(days=2),
parameter_defaults={
"not_fake": "some_value",
},
)
],
)
def create_flow() -> Flow:
with Flow(**nfp.flow_constructor(), schedule=schedule) as flow:
fake = Parameter(name="fake", default="fake", required=True)
not_fake = Parameter(name="note_fake", default="not_fake", required=True)
pprinter(val="fake " + fake)
pprinter(val="not_fake " + not_fake)
flow.run_config = nfp.get_k8_config()
flow.executor = nfp.get_dask_config(adapt_kwargs={"minimum": 2, "maximum": 2})
return flow
FLOW = create_flow()
Schedule
or it will generate an error.Scheduling with parameters
Prefect cannot auto-schedule flows that have required parameters, because the scheduler won't know what value to use. You will get an error if you try to turn on scheduling for such a flow.
To resolve this, provide a default value for your parameters in your flow code or the schedule clock: