目次
はじめに
今回の記事は
のステップアップとなっていますので、先にそちらの記事を見たほうがわかりやすいかもしれません。
お好みでどうぞ!
ではやっていきましょう!
作成
まずはコマンドラインにて
pip install schedule
で、scheduleモジュールをインストールします。
これが定期実行の要です。
ここからファイルに書き込んでいきます。
一定時間処理を止めるsleepを使用するためにtimeモジュールをimport
from time import sleep
sleepは後ほど使います。
前回作成した送信処理を関数にセット
def job():
requests.post(WEB_HOOK_URL, data=json.dumps({
#メッセージ
"text" : "検索しましょう<https://www.google.com/|ggrks>",
#名前
"username": "赤さん",
#アイコン
"icon_emoji":":baby:"
}))
scheduleを設定。
schedule.every(10).seconds.do(job)
今回は動いているかすぐに確認したいので10秒ごとに関数「job」を実行するようにします。
これで準備は完了です。
あとは
schedule.run_pending()
で上記のスケジュールを起動できるのですが
これだけだと関数の実行は一度きりになってしまいます。
ではどうするか。こうします。
while True:
schedule.run_pending()
sleep(1)
無限ループによって同じ処理を一定の間隔で実行します。
最初に出てきたsleepはここで使います。
sleep()
で、指定した秒数だけ処理を一時停止してくれます。
これで、1秒間隔で処理を繰り返すことができるってワケです。
これで完成です!
全体像はこちら
import schedule
import requests
import json
from time import sleep
#WEB_HOOK_URLに、自身のURLを設定
WEB_HOOK_URL = "自分のWEB_HOOK_URL"
def job():
requests.post(WEB_HOOK_URL, data=json.dumps({
#メッセージ
"text" : "検索しましょう<https://www.google.com/|ggrks>",
#名前
"username": "赤さん",
#アイコン
"icon_emoji":":baby:"
}))
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
sleep(1)
実行
それでは実行してみましょう!
コマンドラインにて
python ファイル名
で実行!
圧がすごい。
無事に10秒ごとにSlackに投稿することができました。
あとはメッセージやscheduleの設定を用途にあわせて変えればOKです。
今回は10秒ごとに設定しましたが
#1分毎
schedule.every(1).minutes.do(job)
#1時間毎
schedule.every(1).hours.do(job)
#毎日AM9:00
schedule.every().day.at("9:00").do(job)
#金曜日
schedule.every().friday.do(job)
#金曜日16:00
schedule.every(). friday.at("16:00").do(job)
などいろんな設定の仕方があリますので調べてみてください!
おわりに
いかがでしたか?
意外と簡単にできてしまうものなんですね!
みなさんも試しに遊んでみてはいかがでしょうか。
しかし現在これはローカル環境にあるため、いちいち自分で実行しておかないといけません。
ほったらかしで自動投稿できるようになるまであと一歩‥!
続きはまた今度の投稿でやっていきますね。
ではまた!