24時間運営を前提としたシステムで定期バッチは何時またはいつ実行すべきか
今回は24時間運営を前提としたシステムで定期バッチは何時またはいつ実行すべきかについて論じたいと思います。
24時間運営を前提としたシステムで定期バッチは何時またはいつ実行すべきか
例えば1日1回バッチを起動させたいとして、何時に起動させたいか迷いますよね。
運営時間や利用時間が決まっているシステムを除いて、cronなどを何時に設定すれば良いか迷うときがあると思います。
ユーザーのアクセスがあるであろう時間帯である日中を除くと、定期バッチを実行する候補は次の3つあると思います。
・深夜12時ごろ
・深夜1時~4時ごろ
・朝5時~8時ごろ
それぞれ一つずつ見ていきましょう。
ちなみに先にネタバレをしてしまうと、私の最もおすすめする時間帯は「朝5時~8時ごろ」です。
・深夜12時ごろ
まず、深夜12時ごろについてです。
バッチに日付に関係する処理が入っていた場合、考慮するのが大変なので処理の途中に深夜12時をまたがない方が良いですね。
おすすめなのは、5分過ぎ、10分過ぎなどの24時5分、24時10分などです。
確かに、深夜12時ごろだとアクセスする人も少ないですし、バッチ実行に最適なように思われます。
しかしながら、例えばバッチ実行後にコケた場合はどうでしょうか。
気づくのは次の営業時間です。
深夜24時に気づいたとしてもそこから直すのはしんどいですね。
次の営業時間に直すとすると、システムのダウンタイムが大きくなってしまいます。
・深夜1時~4時ごろ
深夜24時に比べると、さらにアクセスが減ることが予想されるのがこの深夜1時~4時ごろです。
しかし、こちらもバッチ処理が失敗したときに発覚するのが次の営業時間になってしまいます。
システムのダウンタイムを最も小さくできるのが次の「朝5時~8時ごろ」に定期バッチを起動させることです。
・朝5時~8時ごろ
私の最もおすすめする24時間運営を前提としたシステムでバッチを起動すべき時間帯は「朝5時~8時ごろ」です。
ちょくちょく出てきたように、次の営業時間までのダウンタイムを最も短くすることができます。
気をつけなければならないことは、バッチ処理が終わらないうちにアクセスが増えることです。
システムにもよりますが8時、9時くらいからアクセスがどんどん増えていくことが予想されるので、あまりにアクセスが増えるタイミングの直前だとバッチ実行中の時間にアクセス集中がバッティングしてしまう恐れがあります。
余裕を持って朝5時~8時ごろにバッチを起動させるように設定した方が良いでしょう。
終わりに
今回は24時間運営を前提としたシステムで定期バッチは何時またはいつ実行すべきかについて論じさせていただきました。
ディスカッション
コメント一覧
まだ、コメントがありません