Feeds offer a convenient way to configure an external event source to fire these events to a OpenWhisk trigger. This example shows how to use a feed in the Alarms package to fire a trigger every second, and how to use a rule to invoke an action every second.
/whisk.system/alarms package.$ wsk package get --summary /whisk.system/alarms
package /whisk.system/alarms feed /whisk.system/alarms/alarm
$ wsk action get --summary /whisk.system/alarms/alarm
action /whisk.system/alarms/alarm: Fire trigger when alarm occurs (params: cron trigger_payload)
The /whisk.system/alarms/alarm feed takes two parameters:
cron: A crontab specification of when to fire the trigger.trigger_payload: The payload parameter value to set in each trigger event.$ wsk trigger create everyEightSeconds --feed /whisk.system/alarms/alarm -p cron '*/8 * * * * *' -p trigger_payload '{"name":"Mork", "place":"Ork"}'
ok: created trigger feed everyEightSeconds
function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
$ wsk action update hello hello.js
hello action every time the everyEightSeconds trigger fires.$ wsk rule create --enable myRule everyEightSeconds hello
ok: created rule myRule ok: rule myRule is activating
$ wsk activation poll
You should see activations every eight seconds for the trigger, the rule, and the action. The action receives the parameters {"name":"Mork", "place":"Ork"} on every invocation.