logo logo

April 22, 2019 15:38

slackにjupyterでの計算終了を通知する

実現したい事

  • 長い計算してるといつ終わるのかそわそわする
  • その間別のことしてても、定期的に計算終了をチェックしないといけない
  • 週末に計算スタートして、こけてたら通知。リモートでmodifyして再計算などを想定

やり方

  1. まずは通知用のAPIを設定&有効化する。 https://admin-guild.slack.com/apps にアクセスして、検索などでincoming-webhooksのページに飛ぶ
  2. 設定を追加をクリックして、API用URLを登録する。このURLをメモっておく
    ちなみにこんな感じ:https://hooks.slack.com/services/***foobar***
  3. jupyter notebook中での関数定義(実際はpython scriptでもいいし、シェル中でcurlコマンドでAPIを叩くなど、やり方は自由)
import requests
def slack_notify(msg = 'done'):
    slack_user_id = '***'
    slack_webhook_url = '***'
    requests.post(slack_webhook_url, json={"text":msg})

ちなみにslackuseridはslack中で自分のプロフィールアイコンをクリックし、その他(...)をクリックすると出てくるメンバーIDのこと。urlのとこは上のやつをコピペ。この関数を呼びだせばmsgの内容が設定済みのチャンネルに届く