1

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

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

任何帮助,将不胜感激。

4

2 回答 2

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/

于 2016-06-10T18:32:49.643 回答
0

所以你想在 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或在下方评论。

于 2016-06-09T21:07:45.010 回答