Permalink
Browse files

callback

  • Loading branch information...
1 parent e69e302 commit 4df7143916c07c3c1ab34bf8afa6b5718e86a8eb @seki committed Aug 28, 2011
Showing with 9 additions and 0 deletions.
  1. +9 −0 drip.txt
View
@@ -971,6 +971,15 @@ while line = gets
end
||<
+***クロウラの動作間隔とインデクサの同期
+
+このサンプルで示したかったものの一つに、複数の処理が自分の都合のよいタイミングで動作するというものがあります。
+クロウラは定期的に動作を開始します。クロウラはインデクサの状態など気にせずに処理を行い、更新を見つけてはwriteします。
+インデクサも同様です。インデクサはクロウラの動作状況を気にせず、これまでDripに格納されていた文書をまとめて取り出しては索引の更新を行います。文書を処理し終わったら、新しい文書がwriteされるまで休眠状態になります。
+データの流れとしては、クロウラが発生源で、Dripに蓄えられて、インデクサがそれを取り出し索引を作ります。しかし、クロウラが発生させた処理の中でインデクサが動作するわけではありません。たとえば、オブザーバーパターンでクロウラ→インデクサとコールバック等のメソッド呼び出しの連鎖のなかで索引更新が行われると想像してみてください。クロウラ側の更新を調べる処理は、索引の更新と直列に動作し律速してしまいます。
+Dripにおけるイベントの通知は、受動的ではありません。リスナ側が自分の都合のよいときに情報を取り出します。取り出す情報が尽きたら、ブロックすることもできます。アクターモデルのように、能動的に新しい情報を取り出すことで動作します。
+
+(途中)
***フェンスと足跡

0 comments on commit 4df7143

Please sign in to comment.