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秒程度かかります。