【问题标题】:Can I schedule a one-shot action in openwhisk?我可以在 openwhisk 中安排一次性操作吗?
【发布时间】:2017-10-31 22:40:55
【问题描述】:

我正在 IBM Bluemix 中使用 openwhisk,现在我正在寻找一种方法来安排一次性操作。

我知道我可以使用“feed /whisk.system/alarms/alarm”以“cron”方式以固定间隔运行操作。我正在寻找的类似于at linux 命令。

我想出的最接近的是另一个用于生成事件的服务器,但我希望尽可能“无服务器”。

另一个不可取的解决方案是使用 js setTimeout 但是......我想这会浪费执行时间。 (并且可能达到执行时间限制)

提前致谢。

【问题讨论】:

  • 您可以使用警报将单个触发器安排在特定日期。这对你有用吗?
  • 是的,它并不理想,但它会做到。您的意思是使用 maxTriggers 1 吗?我不知何故忽略了这一点。非常感谢。如果您希望将其写为回复,我会接受。
  • 好吧,我必须检查一下“使用过的”动作是否会被自动删除,(我想是的)如果不是,那可能会有点麻烦。
  • 操作本身不会被删除。实际上,触发器或规则都不是。您真的打算将这些合二为一吗?
  • 哦,我不想删除操作,我的意思是触发器,对不起。

标签: javascript ibm-cloud serverless-framework openwhisk


【解决方案1】:

使用具有适当字段并将maxTriggers 参数设置为 1 的 cron 计划。

maxTriggers 参数确保在单个事件之后不会再次调用触发器。

可以从命令行创建一次性触发器。

这是一个触发器在 1 月 1 日 @ 00:00 运行一次的示例。

wsk trigger create new_year --feed /whisk.system/alarms/alarm
  -p cron '0 0 1 0 *' 
  -p maxTriggers 1 
  -p trigger_payload '{"message":"Happy New Year!"}'

开源代码库中有一个未解决的问题,可以为此类事件提供更好的支持。 https://github.com/apache/incubator-openwhisk-package-alarms/issues/89

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    相关资源
    最近更新 更多