resqueに関するmasatomonのブックマーク (5)

  • resque-scheduler (resqueでcronみたいなことをする) - Masatomo Nakano Blog

    resqueシリーズ。 前回 も resque-scheduler について少し触れたのだけど。resque-schedulerのメインであるcron的に使う機能について書いてなかったのでメモ。deployについても書いた。 cronと比較して *nix系のシステムだと、伝統的に、何かを定期的に実行したいcronを使うのだけど、アプリケーションからcronを使う場合、いくつかの使いづらい点がある。 アプリケーション体から離れた場所でcronの動きを管理しないといけない。通常、/etc/crontab 等をメンテナンスしないといけないのだけど、そこはアプリケーションの外側なので、メンテナンスするときにアプリケーション側で使っている方法を使いづらい(SCMもそうだし、deployとかも別で考えないといけない)。 cronから起動する場合、起動する環境について考えないといけない。環境変数が代表

  • RailsでResque使い始めた - Masatomo Nakano Blog

    これとこれの続き。この後、もう少し調査して、Resqueを実際のシステムの一部で使い始めてみたのでその感想とメモ。 前回までのあらすじ Resqueはバックグラウンドでジョブの実行をするもので、かなりの大規模サイトでかつ更新系の処理が多そうなシステムであるGithubで開発され使われている。よくある使い方としては、「Web UIを軽く見せるため、処理の依頼だけを受け付け、実際の処理はバックグラウンドで実行」「バッチ処理などで、大量のJobをQueueに突っ込んでおいて、(複数の)workerで並列で効率よく処理」などがある。 不安なところ Resqueの大きな特徴は、QueueをRDBMSではなくRedis上に作るところにある。Redisは、Memcacheのようにシンプルに使え、すべてのデータはメモリ上に展開されるのでとても速く、データはディスク上にも永続化されるので、何かあったときにも

  • resque-scheduler使ってブログの新着情報をTwitterへ投稿 - Masatomo Nakano Blog - Web開発を極める

    前々回、前回に引き続き、もうちょっとResqueの練習。試しに、このブログの更新情報をTwitterに流す仕組を作ってみた。twitterfeed的なことをする感じで、ブログに投稿したら、Twitterにリンクをポスト、またN時間後にポスト、という感じで。うざそうなので実際には使わないかも。 追記: resque-schdulerのcron的な使い方について別のエントリで書いた。 このN時間後に投稿の部分にresque-schedulerを使ってみた。 Twitterへ投稿するライブラリは、grackleを使ってみた。特に深い理由はない。単純にポストするだけだから何でもいいかな、という感じで、簡単そうに使えそうなのを選んだ。 とりあえずインストール。 gem install grackle gem install resque gem install resque-scheduler Tw

  • resqueとRails - Masatomo Nakano Blog

    前回 の続き(だがあんまり書くことなかった) Railsとの話の前に、前回書き忘れてしまったのだけど、resqueには、1日1回実行する、と言ったスケジューリングの機能はない。スケジュール機能は別のそういう機能を持ったソフトウェアに任せる(代表例: cron)か、自分で作る必要がある。また、resque-scheduler といresqueのプラグインタイプの物もある。現在どの方法が良さそうかか評価中なのでそのうち書く。 さて、Railsとの連携だが、resque自体がそもそもGitHubRailsシステム用に作られたという経緯から、もちろん非常に親和性が高い。たとえば、worker毎にRailsのEnvironmentが一回ロードされるだけなので余計な資源をわなかったり、RailsアプリのWeb UIから非同期な処理の扱いなども簡単にできる。 さて、インストール ./script/p

  • GitHub製Resqueを使用したRubyでのバックグラウンド処理(バッチ処理) - Masatomo Nakano Blog - Web開発を極める

    そこそこの規模のWebシステムになってくるとバックグランド処理(batch処理)は欠かせないものになってくる。メールの送信、データの日次、月次、年次処理、削除(フラグ)データのpurgeやバックアップ、等々いろいろな物が出てくる。 現在はBackgrounDRbを使っているが、いろいろといまいちなので今回Resqueを評価してみた。ちょっと触った段階での第一印象をメモ。 まず、バッチ処理系で評価のポイントになってくる部分はなんだろうかと考えてみると、なんと言っても見通しのよさと異常系の処理だと思う。画面系と違い、バッチ処理は「見えにくい」ところで実行されるので、その二つが特に大事になってくる。「知らないうちに止まっていました」では困るのがバッチ処理。 たとえば、 異常時の処理無視?管理者に通知?リトライ? 復旧処理タスクの削除(問題を修復後)リトライ 状態の監視いくつのJobが残っているか

  • 1