Setting scenario trigger through Python API

ArvinUbhi
Level 3
Setting scenario trigger through Python API

I am using the Python REST API to create scenarios in Dataiku. 

This has all been successful however I am now trying to include trigger information in the create_scenario call. 

If I use 'Daily' as the frequency and provide it an hour and minute in the JSON it works fine. 

However, I am unsure how to schedule other types of triggers. For example every 180 mins or to start on a specific day. 

Please could you assist me with this by showing me how to configure the parameter for the create_scenario API call for different types of triggers. 

Thanks, 

Arvin

0 Kudos
1 Reply
ZachM
Dataiker

Hi @ArvinUbhi ,

The Python API has a handful of functions that you can use to create time-based triggers more easily. Here are some examples:

# Create a scenario and get its settings
scenario = project.create_scenario('SCENARIO_ID', type='step_based')
settings = scenario.get_settings()

# Trigger every 180 minutes
settings.add_periodic_trigger(every_minutes=180)
# Trigger every 4 hours starting today at 12:30
settings.add_hourly_trigger(starting_hour=12, minute_of_hour=30, repeat_every=4)
# Trigger every day at 17:00 starting on 2022-08-07
settings.add_daily_trigger(hour=17, year=2022, month=8, day=7)
# Trigger every Tuesday and Thursday at 3:20
settings.add_daily_trigger(hour=3, minute=20, days=('Tuesday', 'Thursday'))
# Trigger every month on the 8th at 20:15
settings.add_monthly_trigger(day=8, hour=20, minute=15)

# Set the scenario as active so that the triggers will run
settings.active = True
# Save your changes. Any changes that you make to `settings` won't be
# saved without this
settings.save()


See the reference documentation  for a list of available functions and parameters.

 

If you want to create a trigger that isn't covered by the above functions, you can create the trigger via the GUI, and then view the definition for reference:

# Get the settings of an existing scenario
scenario = project.get_scenario('SCENARIO_ID')
settings = scenario.get_settings()

# View the triggers from the scenario.
# You can add these to the definition when using `create_scenario()`
print(settings.raw_triggers)


Please let me know if you have any questions.

Thanks,
Zach

0 Kudos

Labels

?
Labels (2)

Setup info

?
Tags (1)
A banner prompting to get Dataiku