splatnet2statinkを半ば強引ながらコンテナエンジン上で動作させることができます。またプログラムの開始時にソースコードを自動的にgit pullすることで常に最新版のsplatnet2statinkを実行できます。
環境変数にapi_key, session_token, cookie, user_langを設定して、実行します。
$ docker run kamiyaowl/splatnet2statink-docker \
-e api_key=<your api key> \
-e session_token=<your session token> \
-e cookie=<your cookie> \
-e user_lang=<your user_lang>
上記を例にdocker-compose.ymlに事前にsplatnet2statinkを実行して得られたconfig.txtの値を設定。(取扱い注意)
$ docker-compose up
| 項目名 | 内容 | 初期値 |
|---|---|---|
| api_key | stat.inkのAPI Key | "" |
| session_token | splatnet2statink動作のために取得した値 | "" |
| cookie | splatnet2statink動作のために取得した値 | "" |
| user_lang | アクセス時の言語。特に指定がなければ"en-US"にしておく | "" |
| run_flags | splatnet2statink起動時のフラグ(salmon run起動時のものは編集できません) | "-r" |
| skip_update | 何かしらの値が設定されているとsplatnet2statinkのgit pullを抑制します |
false |
| skip_salmon | 何かしらの値が設定されているとSalmon Runの更新を抑制します | false |
| flask_run | httpリクエストをトリガーに実行する場合はtrue | "" |
| flask_port | flask_runを使用する場合のポート |
"8080" |
| flask_debug | flask_run利用時にFlaskのモード |
"" |
はてなブログ GKEでCronJobを使い、定期処理を実行する
$ docker-compose up及び$ docker runを定期実行させます。詳細は割愛。
flask_run=1を環境変数にセットした状態で起動すると、Flaskサーバで待受を行います。
/syncにアクセスがあった際に初めて更新処理を開始します。
レスポンスには時間がかかりすぎないように、適宜ログ出力をStream Textとして出力するように実装しています(knativeのtimeout対策)
| Endpoint | 返却値 | 機能 |
|---|---|---|
/ |
'OK, up_time=XXX.xxx' |
動作確認用。起動時間も表示します |
/sync |
同期ログすべて | flask_run=0で起動した時と同様の挙動をします |
/syncの処理には時間がかかるため、連続してリクエストを投げないようにしてください。更新データがなくても当方の環境でも平均5秒程度かかります。