タグ

gearmanに関するnitsujiのブックマーク (5)

  • The Return of Gearman - スコトプリゴニエフスク通信

    Eric Day氏による興味深いスライド。Gearman and libdrizzle SlidesThe Return of Gearman(PDF)C版のGearmanライブラリとそれを利用したMySQLのUDF, PHP拡張について非常によくまとまっている。特に、UDFを利用したクローラーの例が参考になる。MySQLに(id, url, content)のようなテーブルを作る URLを挿入する INSERTのトリガーでGearmanのバックグラウンドジョブを呼び出す バックグラウンドジョブが該当URLの内容を取得して、contentをUPDATEWhat's Next?として"Persistent queues and replication very soon"って書いてあるけどホントかなー?

  • Gearman, TheSchwartz勉強日記 - スコトプリゴニエフスク通信

    前々から勉強しなくてはと思っていたGearmanとTheSchwartzで遊んでいます。PythonのGearman Client経由でTheSchwartzにジョブを追加する必要があるのですが、まずはPythonでGearmanのClientとWorkerを書いてみます。Python Gearman bindingにはsixapartのレポジトリのものを使いました。easy_installでインストールできるので楽ですね。 $ easy_install http://code.sixapart.com/svn/gearman/trunk/api/python/lib/ テスト用に書いてみたWorker. # worker.py from gearman import GearmanWorker def echo(job): # Do something print job.arg wor

  • Don'tStopMusic - DB分散の次は非同期処理がウェブアプリのスケーリングのトレンドになる , るびま 21 号

    _ [ソフトウェア] DB分散の次は非同期処理がウェブアプリのスケーリングのトレンドになる サイボウズも memcached + MySQL DB 分散 Cybozu Developer Network: MySQL Users Conference Japan 2007 講演概要 を読んで、memcached でキャッシュ& 複数の MySQL をアプリのロジックで分散化というのは、もうすっかりスケーラブルなウェブアプリの作り方として常套手段になったと思いました。 2004 年 4 月の MySQL カンファレンスでの Brad Fitzpatrick の発表 Inside LiveJournal's Backend (PDF)から約 3 年半。Mixi やはてなのようなエッジな企業はだいぶ前からこの構成を採用してますが、対法人のビジネスをしているサイボウズでも採用されたというのは一つ

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Gearmanは64kbぐらいのデータをうまくやりとりできないっぽい

    最近Gearmanを使っていてわかったのですが、Gearmanでは64kbぐらい(ぐらいっていう曖昧な表現なのは、毎回そうとは限らないから)のデータをworkerに投げると、うまく処理できないようです。うまく処理できないというかデータが欠損してしまうようです。 なんでなのか調べてみると、Gearman::Utilのread_res_packet()という関数の下記の部分で、clientから投げられたデータを全て取得できていないというのがわかりました。 if ($len) { $rv = sysread($sock, $buf, $len); return $err->("short_body") unless $rv == $len; } この部分の$lenは、clientから投げられたデータ(パケット)のヘッダーから取得したもので、workerに送られてきたデータ長になります。で、$rv

  • 1