class HogeJob < ActiveJob::Base queue_as :default def perform(*args) # queueな処理 end end
class HogeJob < ActiveJob::Base queue_as :default def perform(*args) # queueな処理 end end
こんにちは、Go! Go! Heaven が頭から抜けないきたけーです。 最近、仕事や趣味でResqueをよく触っています。バックグラウンド処理をおこなう便利なライブラリなんですけど、「◯◯なときって何が起こるの?」と疑問に思うことが多かったので色々なケースでRedisに格納されている値を調べてみました。 ワーカのサンプル 今回はRailsプロジェクトの中に以下のような単純なワーカを用意しました。 class HogeWorker @queue = name class << self def perform(message) sleep 10 puts message end def perform_async(message) Resque.enqueue(self, message) end end end 起動するときは、 bundle exec rake resque:work
class Archive @queue = :file_serve def self.perform(repo_id, branch = 'master') repo = Repository.find(repo_id) repo.create_archive(branch) end end ジョブは perform に応答可能(job.respond_to?(:perform) == true)な Ruby のオブジェクト インスタンス変数 @queue はジョブが置かれるキューを示す キューは不定で on the fly に作成できる class Repository def async_create_archive(branch) Resque.enqueue(Archive, self.id, branch) end end ジョブは Resque.enqueue でキューに置か
こんにちは。hatak (@hisashi) です。 Perl でジョブキューというと TheSchwartz や Qudo などの名前が挙がるかと思いますが、今回はバックエンドに Redis を利用したジョブキュー "Resque" を紹介します。 Resque はバックグラウンドジョブを処理するためのライブラリで、Github を始め大規模なサイトでも利用されています。もともとは Rubyライブラリですが、Ruby 以外の様々な言語でも実装されています。今回紹介するのはその Perl 実装のモジュールです。 試してみる クライアントで入力した文字列をワーカーが表示するだけのシンプルなプログラムを作ってみます。 まずは Redis を利用できるようにしておく必要があります。今回はローカルの Redis を利用しますが、異なるホストで動作している場合は適宜ホスト名やポート番号を変更してくだ
そこそこの規模のWebシステムになってくるとバックグランド処理(batch処理)は欠かせないものになってくる。メールの送信、データの日次、月次、年次処理、削除(フラグ)データのpurgeやバックアップ、等々いろいろな物が出てくる。 現在はBackgrounDRbを使っているが、いろいろといまいちなので今回Resqueを評価してみた。ちょっと触った段階での第一印象をメモ。 まず、バッチ処理系で評価のポイントになってくる部分はなんだろうかと考えてみると、なんと言っても見通しのよさと異常系の処理だと思う。画面系と違い、バッチ処理は「見えにくい」ところで実行されるので、その二つが特に大事になってくる。「知らないうちに止まっていました」では困るのがバッチ処理。 たとえば、 異常時の処理無視?管理者に通知?リトライ? 復旧処理タスクの削除(問題を修復後)リトライ 状態の監視いくつのJobが残っているか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く