レンタルサーバーでバッチ処理をする方法
定期的にプログラムを実行したい
例えば、定期的にニュースサイトから新しい情報を引っ張ってきて、それをDBに入れて更新したい・・・のように、サーバー上で動くプログラムを組んでいると、たまにこういったバッチ処理をしたくなる時がありますよね。
ただ、VPSや専用サーバーならまだしも、レンタルサーバーでバッチ処理ってできるのでしょうか?
そう思ったので、他のプログラマーの方々がどうやってこの問題を解決しているのか、ちょっとだけ調べてみました。
最も一般的なのはCron機能によるプログラム定期実行
やはりと言いますか、最も一般的かつ安全なのはレンタルサーバー側から提供されているCron機能を利用することですね。
これを利用すれば、[月/日/時/分/曜日]を指定してバッチ処理が行えます。
もちろん[毎月]や[毎日]のように、繰り返し実行を指定することも可能です。
ただし、レンタルサーバー会社によっては、Cronのようにサーバーに定期的な負荷をかける可能性のある機能は利用させてくれないところもあります。
ですので、もし皆さんがこれからレンタルサーバーを借りようと思っているのなら、Cron機能の有無をしっかりと確認してから契約をするようにしましょう。
Cronを使わずにバッチ処理をする方法
やや反則な気もしますが、Cronを使わずにバッチ処理をする方法も実はあります。
それは、自分のパソコンなどから直接プログラムファイルにアクセスして、プログラムを実行するというものです。
自分が所有するパソコンであればタスク処理なども組めるでしょうから、まぁできなくないなといった方法ですね。
要はプログラムが動けば良いのだから、それがサーバーからアクセスするか自分のパソコン(クライアント)からアクセスするかは関係無いだろうという潔い考え方ですね(笑)
バッチ処理で負荷をかけ過ぎてはいけません
ただ、当たり前の話ではあるのですが、いくらCron機能が利用できると言っても、その機能で実行するバッチ処理の負荷があまりにも高過ぎる場合、サーバー側から強制的にプロセスを停止させられることもあります。
>> さくらレンサバでforeachを含んだバッチが途中で止まる件
上の記事の方はバッチ処理を2つに分けることで対応できたようですが、レンタルサーバーでバッチ処理をしようとするとこういった落とし穴もあるということを頭に入れておいてください。