問題タブ [resque]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - resque ワーカーを本番環境にデプロイする方法は?
GitHub 関係者は最近、Redis を使用するバックグラウンド処理アプリをリリースしました: http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque
ローカルで動作していますが、本番環境で動作させるのに苦労しています。誰か持っていますか:
- ワーカーをデプロイする Capistrano レシピ (ワーカー数の制御、再起動など)
- メインアプリが実行されている場所からマシンを分離するためにワーカーをデプロイしました。ここではどのような設定が必要でしたか?
- サーバーで再起動しても生き残るためにredisを取得しました(cronに入れてみましたが、うまくいきませんでした)
- resque-web (同社の優れた監視アプリ) をデプロイにどのように取り入れましたか?
ありがとう!
PSこれについてGithubに問題を投稿しましたが、まだ応答がありません。私は展開の経験があまりないので、SOの達人がこれを手伝ってくれることを願っています。ありがとうございました!
ruby-on-rails - Resque または Gearman - バックグラウンド ジョブに適したツールの選択
書き込み要求の約 50% で、最終的に複数のデータ ストアにデータをプッシュし、それらのデータ ストアに多数のレコードを挿入および更新する Web アプリケーションを開発しています。応答時間を改善するために、このようなリクエストをバックグラウンドで非同期に処理したいと考えています。
私たちの Web アプリケーションは Ruby on Rails で書かれています。
私が傾倒している 2 つのソリューションは、Resque と Gearman です。
Resque: 詳細はこちら: http://github.com/blog/542-introducing-resque Resque は Ruby に非常に適しているようで、特にバックグラウンド ジョブ処理に適しています。「バックグラウンド ジョブは、実行に応答する任意の Ruby クラスまたはモジュールにすることができます。既存のクラスをバックグラウンド ジョブに簡単に変換したり、特に作業を行うための新しいクラスを作成したりできます。」
Gearman: 非同期処理のバックグラウンド ジョブ専用というわけではありませんが、それは間違いなくできることです。どうやらより堅牢なようです。Gearman のもう 1 つの利点は、クライアント コードが Ruby で記述されていても、ワーカー コードが PHP で記述されている可能性があることです。現時点では完全に Ruby on Rails アプリですが、将来、当面の仕事に応じて PHP やその他の何かを使用する可能性があるかどうかはわかりません。
あなたは何をお勧めします?どちらかの経験はありますか?2 つのうちどちらかを選択する際に、実際の制作上のどのような課題に留意する必要がありますか? そして、ここでリンゴとリンゴを比較していますか?
ruby-on-rails - resque-schedulerとresque-statusを一緒に使用するにはどうすればよいですか?
Railsアプリでresque-schedulerが正常に動作しています。次に、ステータスを追跡し、キューからジョブを削除できるようにする必要があります。私はresque-statusを簡単に見て、私が見たものから、resque-schedulerでうまく動作させることができれば、それは完璧でしょう。
ただし、rescue-statusはcreate
ラップenqueue
を使用し、resque-schedulerはenqueue_at
現在使用している拡張機能を使用しているようです。プラグインをあまりハッキングせずに一緒にプレイする簡単な方法はありますか?誰かがすでにこれを行っており、私にいくつかのヒントを喜んで教えてくれますか?
ruby-on-rails - Rails ResqueワーカーがPGErrorで失敗する:サーバーが予期せず接続を閉じました
Ubuntu 9.10、Rails 2.3.4、ruby-ee 2010.01、PostgreSQL 8.4.2で、サイトを実行しているRailsアプリケーションとResqueワーカーを本番モードで実行しています。
ワーカーは常にエラーを発生させました:PGError:サーバーが予期せず接続を閉じました。
私の推測では、master resqueプロセスはdbへの接続を確立し(たとえば、authlogicはUser.acts_as_authenticを使用するときにそれを行います)、Railsアプリクラスをロードし、その接続はfork()されたプロセス(終了時に?)で破損するため、次にフォークされます子は一種の壊れたグローバルActiveRecord::Base.connectionを取得します
resqueworkerでフォーク/処理を模倣したこのサンプルコードで非常によく似た動作を再現できました。(AFAIK、libpqのユーザーは、とにかくフォークされたプロセスで接続を再作成することをお勧めします。そうしないと、安全ではありません)
しかし、奇妙なことに、直接pgsql接続の代わりにpgbouncerまたはpgpool-IIを使用すると、そのようなエラーは表示されません。
それで、問題は、プレーン接続で壊れて接続プールで動作している理由を見つけるために、どこでどのように掘り下げる必要があるかということです。または合理的な回避策?
ruby-on-rails - delayd_jobからresqueに移行するためのガイド?
誰かがDelayedJobからResqueに移行する方法のガイドを持っているか知っていますか?私はグーグルで何も見つけることができず、私がこれを行う最初の人であってはならないと考えています。行う必要のある変更の一般的なリストと注意すべき点は素晴らしいでしょう。
ruby - / workerでのResqueランタイムエラー:「exists」コマンドの引数の数が正しくありません
resque-web(localhost)の[workers]タブを見ていると、ランタイムエラーが発生します。他のすべては機能します。
編集:このエラーが発生したとき、私はいくつかの(3または4)未知のワーカーが「機能していない」こともあります。彼らがエラーの原因だと思いますが、どうやってここにたどり着いたのかわかりません。それは私が神から労働者を始めたときにのみ起こります
これについて私を助けてくれませんか?私は何か間違ったことをしましたか?
構成:Snow Leopard redis1.0.7/ラック1.1/sinatra 1.0 /vegas0.1.7のレール2.3.8アプリの宝石としてのResque1.8.5
- ファイル:client.rb
- 場所:format_error_reply
- 行:558
バックトレース:
ruby-on-rails - resque を redis 以外のキー値 DB に接続しますか?
resque hereと、ジョブの「高度なキー値ストア」として redis を使用する方法について少し読んだところです。
ご存じかもしれませんが、複数のマシンで resque を使用してジョブを処理できます。
ワーカーには複数のキュー (「キュー リスト」) を指定して、複数のマシンで実行できます。実際、これらは Redis サーバーへのネットワーク アクセスがあればどこでも実行できます。
私の質問は... resque は、SimpleDB や CouchDB などの他のキー値データベースに接続できますか? はいの場合、これは理にかなっていますか?
ruby-on-rails - Resque: 遅いワーカーの起動とフォーク
現在、アプリケーションを Linode セットアップから EC2 に移行しています。Redis は現在リモート インスタンスにインストールされており、さまざまなワーカー インスタンスがキューとやり取りしています。それはすべて素晴らしいことです。
私の問題は、ワーカーが「インスタンス化」されてフォークが遅くなるまでにかかる時間です。ワーカーの開始には通常 30 秒から 1 分かかります (god.rb がワーカーの rake タスクを開始し、ワーカーがキューでアクティブに作業を開始することから)。私はそれを受け入れることができましたが、現在のLinodeプロダクションボックスでそのような待ち時間を経験したことがないので、それは私の症状の1つがより大きな問題であると信じています. 次の問題は、以前の環境では 1 秒以下だったジョブが、5 倍から 10 倍長くかかるようになったことです。
これは、EC2 にインストールした Ubuntu に何らかの問題があるに違いないと思いますか? 注目すべき違いの 1 つは、新しいセットアップで REE 1.8.7-2010.01 を実行し、古い Linode ボックスで REE 1.8.6 を実行していることです。
他の誰かがこれらの問題を経験しましたか?
ruby-on-rails - Rails2.3.xにi18ngemを無視させる
Railsのローカリゼーション機能を使用するRails2.3.5プロジェクトがあります。Rails 3ベータ版もインストールされています(i18n gemによって異なります)。Rails 2.3.5は、(i18nがインストールされていない場合)それ自体でローカリゼーションを問題なく処理しますが、i18n gemが利用可能な場合は、それを利用します。
最近、gemをアップグレードし、バージョン0.3.7と0.4.0のi18nをインストールしました。もちろん、Railsは、プロジェクトでエラーを引き起こしている最新バージョンをロードして使用したいと考えています。gemのバージョンを0.3.7に設定してみました。これにより、Webアプリのエラーが回避されます。ただし、メッセージの送信を遅らせるためにresqueとresque_mailerを使用しています。ワーカーがキューからメーラージョブを取得するとき、environment.rbのconfig.gem要件を無視し、とにかくバージョン0.4.0を使用します。
理想的には、i18nジェムをまったく使用しないようにRailsに指示したいと思います。それ、どうやったら出来るの?
更新:ベータ4の時点で、Rails3にはi18nバージョン0.4.1が必要です。Rails2とRails3の両方がインストールされている場合に発生するように、この問題が発生していない人がどれほど増えているかはわかりません。
ruby-on-rails - resque-status を使用してジョブをトリガーしているときに、スタック レベルが深くなりすぎるのはなぜですか?
resque-web インターフェースに表示されるスタック トレースは次のとおりです
。
現在、問題を解決するためにいくつかのアップグレードを行っています。現在の gem バージョンは次のとおりです。
redis (2.0.3)
redis-namespace (0.5.0)
redisk (0.2.1)
resque (1.9.5)
resque-scheduler (1.9.2)
resque-status (0.1.4)
また、自分のプログラミングミスを破棄するための非常に単純なワーカーも作成しましたが、これも成功しませんでした。テスト ワーカー コードは次のとおりです (ただし、私が試した resque-status を使用するコードではバグが発生します)。
(レール環境の初期化で適切なイニシャライザがロードされています)。