Setting scenario trigger through Python API

ArvinUbhi
ArvinUbhi Dataiku DSS Core Designer, Registered Posts: 16 ✭✭✭✭

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

Tagged:

Answers

  • Zach
    Zach Dataiker, Dataiku DSS Core Designer, Dataiku DSS Adv Designer, Registered Posts: 153 Dataiker
    edited July 17

    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

Setup Info
    Tags
      Help me…