如何将slack与IronWorker任务集成以获得其状态

时间:2016-06-09 15:26:38

标签: iron.io ironworker

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

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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

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

在松弛状态下注册传入的webhook后,您将获得Webhook URL。其形式为 - https://hooks.slack.com/services/SECRET/SECRET

现在我们必须向此网址发送请求以及数据。

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网址发出请求的python代码。这会将您的数据发布到所需的频道中。

有关详细信息,请访问https://api.slack.com/incoming-webhooks或在下方发表评论。