問題タブ [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.
ruby - ワーカータスクの値を取得するには?
私は理解できない。sidekiq または resque ワーカータスクの結果を取得するには? 例えば:
結果を取得する方法は?
ruby - Heroku を使用したアプリ間での共有メッセージ キュー
Heroku でホストされる 2 つの Web アプリケーションがあります。1 つはフロントエンド アプリです。これは、消費者が直面するすべてのアクションがこのアプリを介して行われるという意味です。新しいサインアップなど。もう 1 つはバックエンドです。これは、新規顧客、その注文、および関連するビジネス ロジックのすべての処理を処理します。これらのアプリが互いに通信し、それらの間でデータを渡す必要があります。FE アプリだけが API を使用するため、BE アプリで API を作成したくありません。これは、他のユーザーが API にアクセスできないようにするためのセキュリティ ルールと制限の作成に時間を費やす必要があることを意味します。
私の質問は、代わりにそれらの間で共有メッセージング キューを使用できるかどうか、そしてこれは良いアイデアであったかどうか、そして Heroku で可能なことでしょうか? このユースケース用のアドオン/サービスはありますか? リストされているキューイング アドオンのほとんどは、同じアプリ内にワーカーとタスク クリエーターを持っています。
いずれにせよBEアプリには他のタスク用のキューが必要になるため、Sidekiqを可能性として検討してきました.これは良い候補のようですが、アプリ間で共有Redisインスタンスを提供したとしても、 、Sidekiq にはそれらの間でメッセージを渡す機能があります。誰でも知っていますか?
ruby-on-rails - Ruby での Heroku とバックグラウンド アップロード
現在、バックグラウンド (Sidekiq) タスクで S3 に画像をアップロードするアプリケーションがあります。それはうまくいきますが、解決策を「ハック」する必要があり、これを行うためのより良い方法を知っている人に興味がありました.
問題: Heroku で Paperclip とバックグラウンド ジョブを使用している場合、tmp ファイルが別のサーバーで起動されているため、ほとんどの場合、ワーカーは tmp ファイルにアクセスできません。ペーパークリップに Heroku の tmp フォルダーを使用させようとしましたが、そこに保存されますが、バックグラウンド タスクは常に「ファイルが見つかりません」を返しました。
一時的な解決策: これにより、イメージを base64 文字列にエンコードし、それを実行タスクに渡す必要があります (嫌な、悪い、恐ろしい、大きなオーバーヘッド)。
Herokuでこれを行うより良い方法はありますか? 画像ブロブをデータベースに保存したくありません。
ruby - Sidekiqの再起動
sidekiq を再起動する正しい方法は何ですか。起動時にワーカーのコードをキャッシュしているように見えるので、ワーカーに変更を加えるたびに再起動する必要があります。私は Ctrl/C でこれを行っていますが、プロセスが終了してプロンプトに戻るまでに長い時間がかかります。
すぐに再起動を強制する方法はありますか?
POW経由で実行されているSinatraで最新バージョンを使用しています。
ruby - Sidekiq が PID ファイルを作成しない
Sidekiq を停止するには、以下を使用する必要があります。
$bundle exec sidekiqctl stop /Users/me/Documents/sites/some_site/tmp/pid/sidekiq.pid 20
config.yml ファイルに pid ファイルを作成するように Sidekiq に指示しています。
そして、この構成ファイルが使用している場所を Sidekiq に伝えます。
$ bundle exec sidekiq -C /Users/me/Documents/sites/some_site/config.yml
しかし、Sidekiq を実行すると .pid ファイルが作成されないため、停止できません。では、なぜ .pid ファイルを作成しないのでしょうか?
ruby - God Gem で処理開始シーケンスを設定する
神に2つのプロセスを順番に開始させることは可能ですか?
Redisに依存するSidekiqを使用しています。Redis を起動してから Sidekiq を起動したいのですが、独立して正常に動作する 2 つの別々のウォッチをセットアップしていますが、実行する
$ god -c "./config.god" -D
と、神が両方を同時に起動しようとしているようで、Sidekiq でエラーが発生する可能性があります。 Redis サーバーに接続します。
神のための私の設定ファイルは以下の通りです:
ruby-on-rails - Sidekiqの労働者に関する統計を確認するにはどうすればよいですか?
APIを介してsidekiqのステータスに関する情報を取得できます。ワーカー用のAPIメソッドはありません。
特定のクラスが実行しているワーカーの数を知りたい。たとえば、という名前のクラスがFooStreamer.rb
あり、それはメソッドで実行されperform_async
ます。現時点で何人のワーカーが実行されているか知りたいです。
何か案は?
ruby-on-rails - God Gem は、w.keepalive を使用すると時計を開始しますが、$god sidekiq start を使用すると開始しません
God Gemと一緒にSidekiqを使用するのに苦労しています。を使用して sidekiq プロセスを手動で開始できるようにしたいのですが、プロセスの開始に失敗します。w.keepalive を設定した場合にのみ、sidekiq プロセスを開始できます (以下のコードでコメントアウトされています)。$god start sidekiq
私は God を使用して起動しています: を使用して$ god -c "./config.god" -D --log-level info
、神をフォアグラウンドで起動すると、次の出力が得られます。
私が得る使用$god start sidekiq
:
しかし、神からの出力は得られず、sidekiq のログには何も書き込まれません$ ps auxwww | grep sidekiq
。
ruby-on-rails - 爆発した戦争からsidekiqを開始する
私たちの現在の本番デプロイメントでは、jenkins を使用して、warble で生成された war ファイルを Tomcat にデプロイします。全体が魅力のように機能します。しかし、私が直面している問題は、「bundle exec sidekiq [options]」を介して、このマシンで sidekiq のワーカーを起動する方法です。理想的には、これを行うためだけにこのマシンに個別の Ruby 環境全体を設定することは避けたいと思いますが、いずれにしても適切に実行するには、sidekiq が展開/インストールされたアプリ環境などにアクセスする必要があります。
このようなことを行うための受け入れられた方法はありますか? バンドルを超えて、このようなインスタンスで sidekiq を起動するより良い方法はありますか?
ruby-on-rails - Sidekiq に引数として Blocks または Proc を送信することは可能ですか?
さまざまなデータセットで計算を実行するための標準システムがあります。すばらしいのは、これらの計算を Proc として perform メソッドに渡すことができることです。これが私が達成したいことです:
この種のことは可能ですか、それとも悪い習慣ですか? オブジェクトを直接送信するのは悪い習慣であることを知っているので、ブロックを送信することも悪い考えだと思いますか?