2016-06-09 8 views
1

Ich möchte die Benachrichtigung über den Status der IronWorker Aufgabe erhalten, nachdem sie abgeschlossen ist. Ich versuchte Setup und Incoming-Webhook, konnte aber keinen Weg finden, dies zu erreichen.So integrieren Sie Slack mit IronWorker Tasks, um seinen Status zu erhalten

Update Ich weiß, wie eingehende Webhook in Slack einzurichten. Ich finde einen Weg, diesen Webhook von IronWorker nach dessen Abschluss auszulösen. Ich möchte den Anforderungscode einfach nicht in meinen Worker-Code integrieren.

Jede Hilfe wäre willkommen.

Antwort

0

Sie möchten also eingehenden Webhook in Slack einrichten. Und Sie möchten sie auslösen, wenn die Aufgabe abgeschlossen ist.

Nach der Registrierung des eingehenden Webhook in slack, erhalten Sie die Webhook-URL. Seine von der Form - https://hooks.slack.com/services/SECRET/SECRET

Jetzt müssen wir eine Post-Anfrage an diese URL zusammen mit den Daten machen.

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 

Das Folgende ist der Python-Code, um eine Anfrage an die Webhook-URL zu stellen. Dies wird Ihre Daten im gewünschten Kanal veröffentlichen.

Für weitere Informationen: Besuchen Sie https://api.slack.com/incoming-webhooks oder kommentieren Sie unten.

1
  1. Hüttenarbeiter erlauben Sie einen UDP-Protokoll-Feed zu konfigurieren. Sie neigen dazu, Protokolle über diesen UDP-Feed an Papertrailapp zu senden. Wenn Sie einen ELK-Stack haben, dann versuchen Sie, darauf zu zeigen. Die meisten Log-Aggregation-Frameworks haben eine Funktion erkennt und meldet eingebaut. So logentries oder papertrail oder ELK dann für eine Log-Anweisung aus dem Arbeiter wie DONE aussehen könnte und informieren Sie per E-Mail/slack/Text usw.

  2. Wenn Ihr Arbeitnehmer hat das Ende seiner Geschäftslogik sicher erreicht, dann ist es vielleicht sicher anzunehmen, dass es auch eine REST-Anfrage senden kann, um von sich aus zu sagen, dass ich fertig bin! Und dass solch eine Aktion keine zusätzliche Last wäre oder zusätzliche Fehler verursachen würde ... versuchen Sie & sehen Sie ... dann teilen Sie!

    (a) Sie könnten eine Benachrichtigungsaufgabe in einer "notification worker" -Warteschlange als letzten Schritt in Ihren Mitarbeitern ... einreihen, wenn Sie die Wahrscheinlichkeit von Fehlern oder Wiederholungen verringern möchten, die durch den Benachrichtigungscode selbst verursacht werden.

  3. Die aktuelle API keine Möglichkeit, sich zu registrieren und erhalten Benachrichtigungen über Arbeitnehmer-Status von iron.io selbst nicht zeigen ... es scheint nur Abfrage basiert: http://dev.iron.io/worker/reference/api/