PythonPythonでSlackBotを開発しよう企画の第8回目。今回はプログラムを定期的に自動実行してくれるようにしていきます。本格的にBotっぽくなってきましたが、リクエストを受け付けて処理を始めるようでは、処理を自動でしてくれている感がなくて辛いので、自動で働いてくれるようにしていきます。Schedulerです。スケジューラーは、従来のサーバー環境のcronと同様、アプリケーション上でスケジュール設定された時間間隔でジョブを実行するための無償のアドオンです。Schedulerはアプリケーションを動かしているDynoとは別で利用時間換算されるようなので、使いすぎると課金される可能性はありますが、普通に個人で利用している分には無料で利用できるアドオン機能です。それでは、早速利用していきたいと思います。Schedulerの設定まずは、定期実行したい処理を記述したファイルを用意します。今回は、定期的に自動でTwitterでつぶやきを検索して、指定した文字列でつぶやかれているつぶやきの中で「いいね」がついている上位5個のつぶやきを教えてくれるように実装します。定期的に呼び出す「tweet_post_slack_with_search.py」ファイルに以下のように処理を実装します。'ツイート見つからなかったす。'自動お知らせっすわ!\n{}'.format(text))tweet_post_slack()「tweet_post_slack_with_search.py」から呼び出す「slackbot_service.py」と「twitter_service.py」も以下のように実装します。popular->人気のツイート。recent->最新のツイート。mixed->全てのツイート。引数で与えられたつぶやきを「いいね」の少ない順で並び替えてstatusリストを返す。つぶやき}辞書を取得。result_dictionaryこれで、「tweet_post_slack_with_search.py」を実行すれば、Twitterのつぶやきをいい感じに検索してSlackにpostしてくれます。master」してHerokuにデプロイします。Schedulerの設定をしていきます。Schedulerをアドオンします。Schedulerの設定画面を開きます。画面が開くので、ここでスケジュール設定をしていきます。21:30にファイルが実行されるように設定しておきます。「これで21:30になったら来るはず!」と思って待っていましたが、21:30になってもSlack通知が飛んでこず...。何か設定が足りてないかな??と思ってましたが、次の日確認すると、6:30にファイルが起動してSlackにメッセージがpostされていました。完全に見落としていましたが、UTC(協定世界時)での21:30。日本時間でいうと9時間先の6:30に実行されるということですね。日本時間で設定できるように変更できるのかなと思って調べてみましたが、パッとは見つかりませんでした。いえ、これでプログラムの自動実行をすることができるようになりました!まとめこれでTwitterに定期的につぶやくBot機能も実装できるし、1時間に1回仮想通貨チャートを確認して、値上がり率が一定以上になっていたらSlackで教えてくれる機能なども実装できます。ほんとプログラムって便利だ...。普通のWebアプリケーションでは、ブラウザからHTTPリクエストを受け付けて、処理を実行する・画面を表示するという処理の流れが普通だと思います。今回開発しているBotでは、Slack上で期待している入力をしたらそれをリクエストとして受け付けて処理を実行するというものにしているので、アクセス経路が限定されます。Schedulerなどを利用して定期実行できるようにしておくことで、Botに自動かつ定期的に働いてもらうようにして生活の諸々を自動化してきたいっすね。Schedulerでプログラム定期実行」Tweet関連記事2018-04-15Tweepyで取得できるStatusの中身(つぶやき)データ一覧TweepyでStatusオブジェクト(つぶやきデータ)が持っている値...2018-04-14PythonでSlackBot開発9「Twitterのつぶやき情報をMySQLに保存する」PythonでSlackBotを開発しよう企画の第9回目。リファクタリングしてたらハマったことPythonのSlackBot開発でリファクタリングを進めていたら、色々...2018-04-09PythonでSlackBot開発6「MySQL連携してデータベース利用」PythonでSlackBotを開発しよう企画の第6回目。今回はデータの保...2018-04-07PythonでSlackBot開発4「仮想通貨ダッシュボード画像をSlack送信」PythonでSlackBotを開発しよう企画の第4回目。積極的にさぼるために頑張る25歳Webエンジニアのブログ。プログラミング・エンジニアのスキルアップ・ブログ運営についてよく書きます。@virtual_techXプログラムとか技術の話はQiitaでよく書いてます。Webエンジニア向けです。virtual_techXはてなブログをはじめよう!virtual-surferさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。