我想在 IronWorker 任务完成后收到有关其状态的通知。我尝试设置和传入 webhook,但找不到任何方法来实现这一点。
更新 我知道如何在 slack 中设置传入的 webhook。我正在寻找一种方法来在 IronWorker 完成后触发这个 webhook。我只是不想将请求代码集成到我的工作代码中。
任何帮助,将不胜感激。
我想在 IronWorker 任务完成后收到有关其状态的通知。我尝试设置和传入 webhook,但找不到任何方法来实现这一点。
更新 我知道如何在 slack 中设置传入的 webhook。我正在寻找一种方法来在 IronWorker 完成后触发这个 webhook。我只是不想将请求代码集成到我的工作代码中。
任何帮助,将不胜感激。
IronWorkers 允许您配置 UDP 日志提要。他们倾向于通过这个 UDP 提要向 papertrailapp 发送日志。如果您有 ELK 堆栈,请尝试指向它。大多数日志聚合框架都内置了检测和通知功能。因此,logentries 或 papertrail 或 ELK 可以从您的工作人员那里寻找日志语句,DONE
并以电子邮件/松弛/文本等形式通知您。
如果您的工作人员已经安全地到达其业务逻辑的末尾,那么也许可以安全地假设它也可以自己发送一个 REST 请求来松弛,说我已经完成了!并且这样的操作不会成为额外的负担或导致任何额外的失败......试试看......然后分享!
(a) 您可以在“通知工作人员”队列中将通知任务排队作为工作人员的最后一步……如果您想减少由通知代码本身引起的失败或重试的机会。
当前的 API 没有显示从 Iron.io 本身注册和接收有关工作人员状态的通知的方法......它似乎只是基于轮询:http ://dev.iron.io/worker/reference/api/
所以你想在 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或在下方评论。