超簡単Pythonプログラム定期自動実行(Heroku・APScheduler利用)
Pythonで超簡単にジョブスケジュール管理(Heroku・APScheduler利用)
1. Herokuへ行ってアカウント作成
クレジットカード番号を登録すると、無料のdyno時間が月550時間から1000時間に増えます(完全無料で使えてお得)
2. ツールインストール(ubuntu 16+)
macやwindowsの場合はドキュメント参照
$ sudo snap install heroku --classic
3. ログイン
heroku login --interactive
4. ファイル作成
requirements.txt
APScheduler==3.0.0
clock.py
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
@sched.scheduled_job('interval', minutes=3)
def timed_job():
print('This job is run every three minutes.')
sched.start()
Procfile
clock: python clock.py
5. デプロイ
$ git init
$ git add .
$ git commit -m "first commit"
$ git branch -M main
$ heroku create
$ git push heroku main
$ heroku ps:scale clock=1
6. 動作確認
$ heroku logs --tail
以上、超簡単
7. タイムゾーン変更
$ heroku config:add TZ=Asia/Tokyo --app アプリ名
8. タイムゾーン確認
$ heroku run bash --app アプリ名
~ $ date
Wed 08 Dec 2021 02:37:27 PM JST