目次

    はじめに

    今回の記事は
    のステップアップとなっていますので、先にそちらの記事を見たほうがわかりやすいかもしれません。
    お好みでどうぞ!

    ではやっていきましょう!

    作成

    まずはコマンドラインにて
    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)


    などいろんな設定の仕方があリますので調べてみてください!

    おわりに

    いかがでしたか?
    意外と簡単にできてしまうものなんですね!

    みなさんも試しに遊んでみてはいかがでしょうか。

    しかし現在これはローカル環境にあるため、いちいち自分で実行しておかないといけません。
    ほったらかしで自動投稿できるようになるまであと一歩‥!
    続きはまた今度の投稿でやっていきますね。

    ではまた!
    PREV
    2022.06.09
    Adobe XDショートカットシート作ってみた(日本語版・A4印刷用)
    NEXT
    2022.06.10
    LiquidのControl flow tagsを解説