rgoura: February 2008 Archives

何を作っていたかについて復習しておきましょう。

「スタート」を押す→処理がはじまる→処理の進捗状況がグラフ表示される

という感じのものを作っている途中でした。

そして、構成要素に分けると、

  • 1から100までを一秒に1ずつカウントアップするworker
  • そのworkerをキックするページA
  • そのworkerの進捗状況をJSONかRJSで返すページB
  • Bを定期的に呼び出し進捗グラフを表示するAjaxなページC

となるのでした。

前回は、

1から100までを一秒に1ずつカウントアップするworker
まで作ったのでしたね。

さっそく続きをはじめましょう。

 BackgrounDRbには、原作者が書いたわかりやすいチュートリアル"Introduction to BackgrounDRb"が存在しており、BackgrounDRbで検索するとこのページの内容を実践されている方のブログなどがヒットするのですが、残念ながらBackgrounDRb 1.0では仕様が大きく変わっており、このチュートリアルは動作しません。

 そこで、BackgrounDRb 1.0で上記のチュートリアルと似たようなことを実現してみたいと思います。

 投稿された動画の変換や、一日一回のリマインドメール送信といった、即時に終わらない処理や、定時に起動して実行するジョブ。Webベースのサービスと、こういったジョブを連携させたい場合、たとえフレームワークをベースにWebのプログラムを組んでいたとしても、それらのフレームワークをはみ出してUNIXの機能を使う方法が最もオーソドックスだと思います。

 たとえば、データベースやファイルシステムやソケットに特定の「合図」を書き込んで、それを見張っている何かがジョブを起動したり、たとえばcronを使って定時にプロセスを起動したりするやり方です。

 しかし、これらの方法はオーソドックスであるという利点を持っている反面、
  • フレームワーク側からジョブのステータスを得るための標準的な方法がない
  • cronやシェルといったフレームワークを記述する言語と異なる仕組みを利用しなければならないため、環境に依存しやすい/円滑なデプロイメントの妨げになる
といった欠点もはらんでいます。

 こうした欠点を補うために、フレームワークとシームレスに連動するようなバックグラウンドジョブ実行の機構がいくつか開発されています。これらの機構を利用すると、たとえばWebインターフェイスから動画変換の処理をキックし、変換状況の進捗をグラフ表示するといった処理が一貫性のある方法で記述できます。

 この連載では、私の独断と偏見でRuby on Rails + BackgrounDRbの例を見て行きたいと思います。

 BackgrouDRbを選ぶ理由としては、比較的ポピュラーであること、定時実行と逐次実行両方の機構をもっていることが大きいのですが、もう一つ重要な理由として、BackgrounDRbの前バージョンである0.2系列と、2007年12月20日にリリースされた1.0の間で大きな仕様変更が行われているようで、最新版の機能について紹介されている文書があまり見あたらなかったので私自身困ったということが挙げられます。

(本調査は、HDEが非公式に、毎月20日頃に日経225登録銘柄のドメインに対し、SPFレコードが設定されているかどうかを独自調査し、主要企業の対応動向を毎月レポートするものです)


 2008年2月20日時点での日経225登録銘柄におけるSPFレコード登録の状況は、全体で31件となり、設定率は13.8%となりました。この数字は、1月の調査から比較して1件の増加ということになりました(増加した一件は~allでした)。


20080220_225spf.png


 先月の調査では、NTTドコモが2007年11月1日からSPFによるなりすましメールの拒否機能を無料提供しはじめたことに呼応したSPFレコード設定の動きが一段落したのか、あるいはまだ継続中であるのか、引き続き観察が必要であるとしましたが、2月の状況から判断するに、「第一次SPFドコモ・ショック」は一旦収束したと考えてよいでしょう。


 一般に企業のシステム入れ替えが多いとされる4月、5月、あるいはキャリア側で新たな動きがあるまでは、当面SPF設定を急ぐ企業はそれほどは増えないと予想されます。引き続き観察を続けて参ります。


2008年1月の調査

2008年3月の調査

About this Archive

This page is a archive of recent entries written by rgoura in February 2008.

rgoura: January 2008 is the previous archive.

rgoura: March 2008 is the next archive.

Find recent content on the main index or look in the archives to find all content.