問題タブ [sidekiq]

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 投票する
6 に答える
8115 参照

ruby-on-rails-3 - Ruby on Rails Sidekiq を監視する

Sidekiq 用に Monit をセットアップしようとしています。これまでの構成ファイルの内容は次のとおりです。

問題は、monit reload を実行すると、プログラム「バンドル」が存在しないというメッセージが表示されることです。

誰かがこれに対する解決策を持っていますか?

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

ruby-on-rails-3 - sidekiqおよびdevise-asyncを介したバックグラウンドメーリング、キューはいっぱいになりますが、メールは処理されません

私は現在、Railsプラットフォームを構築しており、認証にdeviseを使用しましたが、sidekiqを使用してデフォルトのdeviseメールをバックグラウンドプロセスに移動したいと考えています。私はこれにdevise-asyncを使用しており、次のことを行っています。

devise_async.rbファイルを追加しました:

deviseモデルにasyncコマンドを追加しました:

宝石のバージョンは次のとおりです。

私が抱えている問題は、電子メールがsidekiqキューで渡されるが、ワーカーが電子メールの送信を実行しないことです。私はまた、sidekiqで動作しないデバイス非同期を調べましたが、彼は同じ問題を抱えているようでした。しかし、hostnameコマンドに問題はないと思います。

この問題について何か考えはありますか?

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

ruby-on-rails - この ActiveRecord::Observer を Service オブジェクトに変換する方法は?

次の ActiveRecord::Observer を Service オブジェクト (または複数のオブジェクト) に変換するにはどうすればよいでしょうか?

すべてのPushService変更の WebSocket を介して、接続されているすべてのブラウザーを更新します。これは、外部プロセスへの POST によって行われます。Thread.newからSidekiq に移行してから、オブザーバーが壊れました。:after_create で開始された Sidekiq ジョブは、トランザクションが実際にコミットされる前に実行される可能性があるため、ActiveRecord::NotFound エラーが発生します。

:after_commit フックを使用することをお勧めしますが、そうすると必要な情報PushServicerecord.changes利用できなくなります。

このオブザーバーが実現する興味深い使用例は、別のメッセージへの返信である新しいメッセージが作成されたときです。2 つのコールバックが自動的に実行されます。返信メッセージ用の :after_create と、スレッド メッセージ用の :after_touch 。

明示的なサービス オブジェクトを使用して、この動作を実行する方法に興味があります。

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

ruby-on-rails - Sidekiqは実行時にキューを作成します

私は小さなプロジェクトにSidekiqを使い始めています。

実行時にキューを作成して起動できるかどうか知りたいのですが。

私が次のようなものを使用するとき

キューは作成されましたが、開始する方法が見つかりませんでした。

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

ruby-on-rails - Rails:HerokuでSidekiqを開始

HerokuでデプロイされたRailsアプリでSidekiqを起動して実行する際に問題が発生します。私のアプリは開発中(およびSidekiqなしのHerokuで)正常に動作しています。

次のコマンドでProcfileを作成しました。

を実行するheroku psと、表示されるプロセスは。だけですweb.1

Sidekiq用に1つ見る必要がありますか?

エラーが発生します:

Redis::CannotConnectError (Error connecting to Redis on localhost:6379)Herokuのログにあります。

更新:おそらく必要だったことがわかりましheroku addons:add redistogoた。まだ動作していません。基本的な構成が不足しているように感じます。

HerokuアプリでRedisを起動して実行するために必要なことはありますか?

私はRedis/Sidekiqを約1日間使用しているので、これは私にとって初めてのことです。

ありがとう!

グレッグ

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

ruby-on-rails - Heroku で Sidekiq ワーカーを実行する方法

Rails プロジェクトで Sidekiq をセットアップしました。Heroku と Unicorn で実行しています。適切な REDISTOGO_URL の設定を含むすべての構成手順を実行しました (この質問が参照するように)。unicorn.rb の after_fork に以下を追加しました。

私のプロファイルは次のとおりです。

今、ワーカーを perform_async に呼び出し、タスクをキューに追加します。実際、私の Sidekiq Web インターフェイスでは、キューに 7 つのアイテムがあり、そこにすべてのデータがあると表示されます。それでも、キューを処理しているワーカーはなく、私の人生では、その理由がわかりません。私が走れば

次の出力が得られます。

ここで何が起こっているのか誰にも分かりますか?

アップデート

これが私のワーカークラスのコードです。はい、Oj gem には sidekiq に問題がある可能性があることは承知していますが、最初に試してみることにしました。この時点ではエラー メッセージは表示されません (ワーカーは実行されません)。

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

ruby-on-rails - Resque キューを SideKiq に変換する

Resque キューを Sidekiq に変換しようとしています。Sidekiq のセットアップ全体が完了し、すべての resque ジョブを sidekiq ジョブに追加する準備が整いました。

私の質問は、redis のすべての resque キーの名前を対応する sidekiq キーに変更することはできますか?

たとえば、「twitter」という名前のキューがある場合、resque の redis キーは「resque:queue:twitter」ですが、sidekiq のキーは「queue:twitter」になります。「resque:queue:twitter」の名前を「queue:twitter」に変更できますか?

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

ruby - Heroku、Nokogiri、Sidekiq のメモリ リーク - デバッグ方法は?

Heroku で Sidekiq を使用するように切り替えたばかりですが、しばらくジョブを実行すると、次のようになります。

そんな感じで伸び続けています。

これらのジョブでは、Nokogiri と HTTParty を使用して URL を取得し、解析しています。いくつかのコードを変更しようとしましたが、そもそも何を探しているのか実際にはわかりません。これをデバッグするにはどうすればよいですか?

アプリに New Relic を追加しようとしましたが、残念ながらまだ Sidekiq をサポートしていません。

また、グーグルの後、SAXパーサーに切り替えて、それが機能するかどうかを確認しようとしていますが、行き詰まっています。これは私がこれまでに行ったことです:

次に、次のようなことを試します。

次に、HTTParty を使用して取得したデータで次のメソッドを使用しようとしましたが、これらのメソッドのいずれも正しく機能させることができませんでした。

アップデート

parser.parse(page)代わりに呼び出していたため、パーサーが機能していないことがわかりparser.parse(page.body) ましたが、上記のスクリプトを使用してさまざまな Web サイトのすべての html タグを印刷しようとしましたが、一部のサイトではすべてのタグが印刷され、他のサイトでは印刷のみが行われましたいくつかのタグを出します。

Nokogiri::HTML()代わりに使用すると正常にparser.parse()動作します。

HTML ドキュメントNokogiri::XML::SAX::Parser.new()の代わりにを使用していたため、問題が発生していました。Nokogiri::HTML::SAX::Parser.new()

コードの更新

OK、次のコードが機能するようになりましたが、取得したデータを後で使用できる配列に入れる方法がわかりません...

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

ruby-on-rails-3 - コントローラの外部でredirect_to(またはrender)を呼び出すRails

これは些細な問題のように思えるかもしれませんが、どこにも答えが見つからないようです (これは、Rails が私がしていることに眉をひそめているためかもしれません)。

Sidekiq を使用してバックグラウンド タスク (画像処理、アップロードなど) を処理していますが、それらが終了したら、現在のページを別のページにリダイレクトするか、部分的にレンダリングすることをお勧めします。

perform メソッドの現在のコードは次のようになります。

そのため、次のようないくつかの方法を試しました。

また

私もこの恐ろしいハックを試しました:

entry_controller.rb

worker.rb

私は何を間違っていますか?

参照 (私が調べたもの): エラー検証を処理するときに render と redirect_to をいつ使用するか

https://gist.github.com/1210155

http://railsforum.com/viewtopic.php?id=16885