問題タブ [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.

0 投票する
2 に答える
1409 参照

java - WAR としてデプロイされた場合の JRuby のスレッドセーフ Resque ワーカー

現在、JRuby で Resque を使用しており、開発時にワーカーを開始する 2 つの方法を使用しています。

  • レーキの使用:
  • プログラムで、Sinatra Rack App (または何でも) を介して初期化され、最終的に次のクラスを呼び出します。

これらのソリューションは両方とも、開発中は受け入れられます。たとえば、Tomcat にデプロイした場合にこれがどのように機能するかが心配です。

Ruby では通常、ワーカーを生成またはデーモン化してから、監視ツールを使用して pid を監視します。

デプロイ時にワーカーをプログラムで開始することは理にかなっていますか? javaで新しいスレッドを開始するか、jrubyプロセスを乱雑にするかどうか疑問に思っています.使用しない場合は、クォーツのような別のスケジューリングライブラリを使用してワーカーを開始しますか? またはデプロイタスクで起動するレーキタスク?

Worker モデルを作成して、データベース内のワーカーを追跡することもできますが、それは私には意味がありません。

ヘルプや知識をいただければ幸いです。

ありがとうございました。

参照:

https://github.com/defunkt/resque

http://rubydoc.info/github/defunkt/resque/master/Resque/

http://blog.thomasmango.com/post/636319317/resque-in-production

https://gist.github.com/486161

0 投票する
7 に答える
33289 参照

ruby-on-rails-3 - レスキューワーカーによってキューに入れられたジョブを破棄するにはどうすればよいですか?

Rails-3プロジェクトでResqueを使用して、5分ごとに実行するようにスケジュールされているジョブを処理しています。私は最近、これらのジョブの作成に雪だるま式に何かをしました、そしてスタックは1000以上のジョブにヒットしました。多くのジョブがキューに入れられる原因となった問題を修正しましたが、バグによって作成されたジョブがまだ存在しているため、1000以上のジョブがあるキューにジョブが追加されるため、テストが困難になるという問題があります。私はこれらの仕事を止めることができないようです。flashallコマンドを使用してredis-cliからキューを削除しようとしましたが、機能しませんでした。私は何かが足りないのですか?coz私はこれらの仕事を取り除く方法を見つけることができないようです。

0 投票する
3 に答える
1809 参照

ruby-on-rails - 神は Resque ワーカーを開始しません: rake は中止されました! 非絶対的な家

log/resque-0.log に次のエラーが記録されています。

神が使用するのと同じコマンドを使用してワーカーを手動で起動すると、正常に起動します。

そのコマンドを「rails」ユーザーと「root」ユーザー(Godが実行されているユーザー)で実行しようとしました。何か案は?

0 投票する
1 に答える
1643 参照

ruby - (resque-status) Resque::JobWithStatus に引数を渡すことは可能ですか?

私は resque にかなり慣れていませんが、私のニーズには本当に合っているようです。

実際、私は次のような簡単なテストアプリをセットアップしようとしています:

そして、バックグラウンドワーカーを作成します

resque-status がなければ、完全に機能します (ワーカーを作成する代わりに enqueue を呼び出します)。resque-status を使用すると、

引数の数が間違っています (1 に対して 2) /.../resque_test/lib/word_analyzer.rb:6:in `perform' /.../.rvm/gems/ruby-1.9.2-p136/gems/resque- 1.16.1/lib/resque/job.rb:127:「実行」中

ドキュメントとコードの両方を検索しましたが、resque-status ジョブに引数を渡す適切な方法が見つかりませんでした。出来ますか?

前もって感謝します。

0 投票する
1 に答える
739 参照

ruby-on-rails - RVMを使用してRubyonRailsでRedisベースのライブラリを構成するためのヘルプが必要

resqueをインストールするための構成ガイドラインに従っています。(LoadError)が発生しました。私はRVM1.9.2-p180、rails 3.0.6、およびPOWを使用しています。これはおそらく、ロードパスが完全に間違っているという問題です。だからここにいくつかの追加情報があります:

config / resque.yml

initializers / resque.rb:

ターミナル:

Redis-server(localhost:6379にアクセスしたときに追加のクライアントを接続しています。

0 投票する
1 に答える
3023 参照

ruby-on-rails - resque-webが500サーバーエラーで起動に失敗する

resqueをインストールするための構成ガイドラインに従っています。(OpenURI :: HTTPError)に遭遇しました。RVM 1.9.2-p180、rails 3.0.6、およびPOWを使用しています。「resque-web」は500サーバーエラーで起動できません。ここで一体何が起こっているのですか?

問題を再現するには:

  1. $でredisを開始しますredis-server
  2. でワーカーを開始します$ VVERBOSE=1 QUEUE=file_serve rake environment resque:work
  3. 次のコマンドでResque-Webを開始してみてください。RAILS_ENV=development resque-web config/initializers/resque.rb

config / resque.yml

initializers / resque.rb:

ターミナル:

Redis-server(localhost:6379にアクセスしたときに追加のクライアントを接続しています。

Initializers / redis.rb

ターミナル:($redisの証明)

0 投票する
3 に答える
5575 参照

ruby-on-rails - Railsで1時間ごとにメソッドを呼び出すにはどうすればよいですか?

ResqueRedisを使用してバックグラウンドジョブを処理しています。バックグラウンドタスクを実行するために、メソッドResque.enqueue(MyModel)を1時間に1回だけ呼び出したいと思います。

例:10,000人のユーザーがいるサイトがあるとします。このメソッドを1日24回だけ呼び出したいと思います。10,000*24ではありません。メソッドの例は次のとおりです。

よろしくお願いします。また、Delayed Jobに移行するのではなく、Resqueに固執することを好みます。ありがとうございました。

0 投票する
1 に答える
5486 参照

ruby-on-rails - 2回目の実行でResque.enqueueが失敗する

アプリをRails3.0.3からRails3.1rcに移植しようとしています...構成に関しては、何も見逃していないと思います。このプロセスは、3.1rcではなくRails3.0.Xで完全に機能します。

コンソールでは、次のことを行います。

これまでのところすべてが機能しています。Resque-webは失敗したジョブを報告しません。そして、モジュールEncodeSongから2つの「puts」を取得します。

ただし、Resque.enqueue(EncodeSong、Song.find(20).id、Song.find(20).unencoded_url)を2回実行すると、resque-web(下記)で次のエラーが返されます。エラーを解消するには、実行中のプロセスを閉じる必要があります。QUEUE= * rake environment resque:workそして、コンソールウィンドウで再実行します。しかし、最初にResque.enqueue()を試行した後、問題が再発します。

これが私の関連するコードの残りです:

/config/initializers/resque.rb

/app/jobs/encode_song.rb

lib / tasks / resque.rake

よくわかりませんが、この問題に関連している可能性があります。私の推測では、master resqueプロセスは、rails appクラス、モデルなどをロードしている間にdbへの接続を確立し、その接続はfork()edプロセス(終了時?)で破損します。

任意のヘルプ/方向性をいただければ幸いです。

編集:

lib / tasks / resque.rakeから次のブロックを削除した場合:

そしてコンソールで、Resque.enqueue(EncodeSong、Song.find(20).id、Song.find(20).unencoded_url)を実行します

新しいエラーが発生します(QUEUE = * rake environment resque:workが実行されたコンソールで):

どうやら、これはアダプタのバグかもしれませんか?ここで間違っている可能性があります。あなたの考え?

0 投票する
2 に答える
134 参照

ruby-on-rails - 確認メールはバックグラウンドで処理する必要がありますか?

確認メールは、ある種のバックグラウンドジョブ(Resque、Delayed_Jobなど)を使用してバックグラウンドで処理/送信する必要がありますか?

アプリは、確認メールが送信されるまでハングする傾向があります。ただし、ハングするのはほんの一瞬か2秒です。バックグラウンドタスクとして送信する価値があるかどうかはわかりません。

あなたの考えは何ですか?

0 投票する
1 に答える
514 参照

ruby - Rails キュー管理

リモート Web サイトから情報を取得して再検証するジョブを作成しています。私は実際に、次のように機能するキューを使用して既に実装しています。テキスト ファイルが読み取られ、5k 単位でスライスされ、スレッド プロセッサに渡されます。スレッド プロセッサは終了し、新しいワーカーが生成されます。

私はresqueを調べていますが、このような問題について一般的な種類の設計上の質問がありました. では、5 ~ 2,000 万単位の作業になる可能性があるジョブがある場合、キューを格納するためのベスト プラクティスは何ですか? たとえば、理論的には作業を分割して保存し、そのチャンクのジョブを作成したり、キューに 5 ~ 2,000 万の個別の項目を入れることができます。フェッチ/再生成される作業には多くのオーバーヘッドがあるようです。ただし、作業をチャンク化しようとすると、かなりのオーバーヘッドが発生し、コーディングが増えます。