【问题标题】:How to integrate slack with IronWorker tasks to get its status如何将 slack 与 IronWorker 任务集成以获取其状态
【发布时间】:2016-06-09 15:26:38
【问题描述】:

我想在 IronWorker 任务完成后收到有关其状态的通知。 我尝试设置和传入 webhook,但找不到任何方法来实现这一点。

更新 我知道如何在 slack 中设置传入的 webhook。我正在寻找一种在 IronWorker 完成后触发此 webhook 的方法。我只是不想将请求代码集成到我的工作代码中。

任何帮助将不胜感激。

【问题讨论】:

    标签: iron.io ironworker


    【解决方案1】:
    1. IronWorkers 允许您配置 UDP 日志提要。他们倾向于通过这个 UDP 提要向 papertrailapp 发送日志。如果您有 ELK 堆栈,请尝试指向它。大多数日志聚合框架都内置了检测和通知功能。因此 logentries 或 papertrail 或 ELK 可以从您的工作人员那里查找日志语句,例如 DONE 并以电子邮件/松弛/文本等形式通知您。

    2. 如果您的工作人员已经安全地到达其业务逻辑的末尾,那么也许可以安全地假设它也可以自己发送一个 REST 请求来松弛,说我已经完成了!并且这样的操作不会成为额外的负担或导致任何额外的失败......试试看......然后分享!

      (a) 您可以在“通知工作人员”队列中将通知任务排队作为工作人员的最后一步......如果您想减少由通知代码本身引起的失败或重试的机会。

    3. 当前的 API 没有显示注册和接收来自 iron.io 本身的工人状态通知的方法......它似乎只是基于轮询:http://dev.iron.io/worker/reference/api/

    【讨论】:

      【解决方案2】:

      所以你想在 slack 中设置传入的 webhook。并且您想在任务完成时触发它们。

      在 slack 中注册传入的 webhook 后,您将获得 Webhook URL。它的形式 - https://hooks.slack.com/services/SECRET/SECRET

      现在我们必须连同数据一起向这个 url 发出一个 post 请求。

      import requests
      import json
      url = 'https://hooks.slack.com/services/SECRET/'
      payload = {'text': 'Random test',"username": "A slack bot","icon_url": "https://slack.com/img/icons/app-57.png","channel": "@abhinav_rai"}
      r = requests.post(url, data=json.dumps(payload))
      print r.text
      print r.status_code
      

      以下是向 webhook url 发出请求的 python 代码。这会将您的数据发布到所需的频道中。

      更多信息:访问https://api.slack.com/incoming-webhooks或在下方评论。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-09
        • 1970-01-01
        • 1970-01-01
        • 2021-01-24
        • 2020-01-19
        • 2016-10-04
        • 1970-01-01
        相关资源
        最近更新 更多