Google App Engine for Java で cron を使う
この記事は最初の投稿日から14年経過しています。内容が古い可能性があります。
cronも使えるのですね。
Java 用 cron を使用したスケジュールされたタスク – Google App Engine — Google Developers
実行したい処理をServletで実装して、それを定期的に呼び出してもらうという仕組み。
レンタルサーバで動かしていたTwitterのbot(今年の経過週数 (weekofyear)さんはTwitterを使っています)をGAEに移してみました。
- もともとJavaアプリケーションで動いていた処理をServletのdoGet()の処理に移して動作を確認
- そのままだとGAEのURLを知っていれば誰でも動かせてしまうので、web.xmlの<security-constraint>でadminというユーザロールを指定して管理者のみが呼び出せるようにする。
- cron のための URL のセキュリティ
- セキュリティと認証
- 「制限が admin というユーザー ロールを指定している場合、アプリケーションの登録デベロッパー(管理者)のみが URL にアクセスできます。」
- WEB-INF/cron.xmlに実行したいURLと時間を登録する。
- スケジュールフォーマット
- 毎日実行する方法がわからなかったのですが、毎月、月曜日~日曜日で登録すればよいようです。
とりあえず直近の時間でcronの時間設定して実行したらあっけなく動いてツイートされました。(Twitter / ?)。ついでにツイートの内容にグラフっぽいものを追加してみました。しばらくこれで動かしてみます。
GAE for Javaいいですね。ちょっとしたもの動かすのに便利すぎ。