GithubHelp home page GithubHelp logo

kryndex / incubator-openwhisk-package-alarms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/openwhisk-package-alarms

0.0 1.0 0.0 235 KB

Apache OpenWhisk package that can be used to create periodic, time-based alarms

License: Apache License 2.0

JavaScript 54.44% Shell 3.43% Scala 42.13%

incubator-openwhisk-package-alarms's Introduction

Using the Alarm package

License Build Status

The /whisk.system/alarms package can be used to fire a trigger at a specified frequency. This is useful for setting up recurring jobs or tasks, such as invoking a system backup action every hour.

The package includes the following feeds.

Entity Type Parameters Description
/whisk.system/alarms package - Alarms and periodic utility
/whisk.system/alarms/alarm feed cron, trigger_payload, maxTriggers, startDate, stopDate Fire trigger event periodically
/whisk.system/alarms/once feed date, trigger_payload Fire trigger event once on a specific date
/whisk.system/alarms/interval feed minutes, trigger_payload, startDate, stopDate Fire trigger event on an interval based schedule

Firing a trigger event periodically on a time based schedule

The /whisk.system/alarms/alarm feed configures the Alarm service to fire a trigger event at a specified frequency. The parameters are as follows:

  • cron: A string, based on the UNIX crontab syntax, that indicates when to fire the trigger in Coordinated Universal Time (UTC). The string is a sequence of five fields that are separated by spaces: X X X X X. For more details about using cron syntax, see: http://crontab.org. Following are some examples of the frequency that is indicated by the string:

    • * * * * *: top of every minute.
    • 0 * * * *: top of every hour.
    • 0 */2 * * *: every 2 hours (i.e. 02:00:00, 04:00:00, ...)
    • 0 9 8 * *: at 9:00:00AM (UTC) on the eighth day of every month

    Note: The parameter cron also supports a custom syntax of six fields, where the first field represents seconds. For more details about using this custom cron syntax, see: https://github.com/ncb000gt/node-cron. Here is an example using six fields notation:

    • */30 * * * * *: every thirty seconds.
  • trigger_payload: The value of this parameter becomes the content of the trigger every time the trigger is fired.

  • maxTriggers: Stop firing triggers when this limit is reached. Defaults to infinite (-1).

  • startDate: The date when the trigger will start running. The trigger will fire based on the schedule specified by the cron parameter.

  • stopDate: The date when the trigger will stop running. Triggers will no longer be fired once this date has been reached.

    Note: The startDate and stopDate parameters support an integer or string value. The integer value represents the number of milliseconds since 1 January 1970 00:00:00 UTC and the string value should be in the ISO 8601 format (http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15).

The following is an example of creating a trigger that will be fired once every 2 minutes with name and place values in the trigger event. The trigger will not start firing until January 1, 2019, 00:00:00 UTC and will stop firing January 31, 2019, 23:59:00 UTC.

wsk trigger create periodic \
  --feed /whisk.system/alarms/alarm \
  --param cron "*/2 * * * *" \
  --param trigger_payload "{\"name\":\"Odin\",\"place\":\"Asgard\"}" \
  --param startDate "2019-01-01T00:00:00.000Z" \
  --param stopDate "2019-01-31T23:59:00.000Z"

Each generated event will include as parameters the properties specified in the trigger_payload value. In this case, each trigger event will have parameters name=Odin and place=Asgard.

Firing a trigger event periodically on an interval based schedule

The /whisk.system/alarms/interval feed configures the Alarm service to fire a trigger event on an interval based schedule. The parameters are as follows:

  • minutes: An integer representing the length of the interval (in minutes) between trigger fires.

  • trigger_payload: The value of this parameter becomes the content of the trigger every time the trigger is fired.

  • startDate: The date when the first trigger will be fired. Subsequent fires will occur based on the interval length specified by the minutes parameter.

  • stopDate: The date when the trigger will stop running. Triggers will no longer be fired once this date has been reached.

    Note: The startDate and stopDate parameters support an integer or string value. The integer value represents the number of milliseconds since 1 January 1970 00:00:00 UTC and the string value should be in the ISO 8601 format (http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15).

The following is an example of creating a trigger that will be fired once every 90 minutes. The trigger will not start firing until January 1, 2019, 00:00:00 UTC and will stop firing January 31, 2019, 23:59:00 UTC.

wsk trigger create interval \
  --feed /whisk.system/alarms/interval \
  --param minutes 90 \
  --param trigger_payload "{\"name\":\"Odin\",\"place\":\"Asgard\"}" \
  --param startDate "2019-01-01T00:00:00.000Z" \
  --param stopDate "2019-01-31T23:59:00.000Z"

Firing a trigger event once

The /whisk.system/alarms/once feed configures the Alarm service to fire a trigger event on a specified date. The parameters are as follows:

  • date: The date when the trigger will be fired. The trigger will be fired just once at the given time.

    Note: The date parameter supports an integer or string value. The integer value represents the number of milliseconds since 1 January 1970 00:00:00 UTC and the string value should be in the ISO 8601 format (http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15).

  • trigger_payload: The value of this parameter becomes the content of the trigger when the trigger is fired.

The following is an example of creating a trigger that will be fired once on December 25, 2017, 12:30:00 UTC.

wsk trigger create fireOnce \
  --feed /whisk.system/alarms/once \
  --param trigger_payload "{\"name\":\"Odin\",\"place\":\"Asgard\"}" \
  --param date "2017-12-25T12:30:00.000Z"

incubator-openwhisk-package-alarms's People

Contributors

abaruni avatar cbickel avatar csantanapr avatar dubee avatar jasonpet avatar johnsolm avatar markusthoemmes avatar mrutkows avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.