問題タブ [beanstalkd]
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 - Beanstalkdキューから複数のジョブを予約する
Beanstalkdキューから一度に複数のジョブを予約する方法はありますか?
クエリごとに最大10件の結果を返すことができる外部APIにリクエストを送信しています。それらは私が毎日行うことができるリクエストの数を制限するので、リクエストごとに得られる結果が多いほど良いです。
ドキュメントでこの機能についての言及が見つからなかったため、この回避策を使用しています。誰かがこれを達成するためのより良い方法を知っていますか?または、おそらくbeanstalkdよりも仕事に適したツールですか?
ubuntu - beanstalkd: 不明なフラグ: -d
を使用してbeanstalkdをインストールしました
beanstalkd バージョン 1.7 をインストールしたもの
今、beanstalkd プロセスを開始するために、コマンドを使用しています
私は応答を得ています
ruby-on-rails - BeanstalkdにBackburnerを使用する場合のワーカーの識別と差別化
アプリケーションでBackburner ( Beanstalkd用のRubyクライアント)を使用して、たとえば、着信ジョブを同じチューブで監視している50人のワーカーを作成しようとしています。問題は、これらの50人のワーカーのそれぞれが、ジョブを実行するときに、重いファイル操作などを実行し、それぞれが一意の名前の番号付きディレクトリに対していくつかの操作を実行する必要があることです。たとえば、ワーカー7はdir7という名前のディレクトリで作業する必要があります。
当初はThreadsOnFork
50スレッドのワーカーを作成でき、ワーカーのperform()メソッドから各スレッドに関連付けられた番号にアクセスできると思っていましたが、まだアクセスできていません。
Backburnerを使用してこの状況に対処するにはどうすればよいですか?または、Backburnerでそれが不可能な場合は、他のRuby Beanstalkdクライアントを使用しますか?私の質問が十分にはっきりと伝わっていることを願っています。ありがとう。
php - Beanstalkd (pheanstalk 経由) で重複した同時予約が可能ですか?
Pheanstalk を PHP ジョブの基本クラスにラップしようとしています。リザーブと遅延機能を備えたリザーブをテストしていますが、最初のインスタンスがジョブを解放したり、TTR がタイムアウトしたりすることなく、基本クラスの 2 番目のインスタンスからジョブを予約できることがわかりました。これはまさにジョブ キューが防ぐべきものだと思っていたので、これは予想外です。最初のプットと最初のリザーブの beanstalkd コマンドとタイムスタンプを以下に示します。最後に stats-job リクエストも行います。
ここまでは順調ですね。次に、基本クラスの 2 番目のインスタンスから別の予約を行い、続いて別の統計ジョブ リクエストを行います。タイム スタンプが 1 秒以内であり、設定した 300 秒の TTR にはほど遠いことに注意してください。また、この 2 番目の stats-job の出力では、タイムアウトが 0 でリリースが 0 のこのジョブの予約が 2 つあることに注意してください。
私が間違っているかもしれないことについて誰にもアイデアがありますか? 一度に 1 人のワーカーだけがジョブにアクセスできるようにキューに伝えるために何かしなければならないことはありますか? beanstalkd とのセッションを終了すると思われるキューからジョブを取得するとすぐに、pheanstalk インスタンスで「設定解除」を行っています。これにより、Beanstalkd がワーカーが停止したと判断し、タイムアウトなしでジョブを自動的に解放する可能性がありますか? ワーカーの状態を判断するために、beanstalkd がセッション状態にどの程度依存しているかはわかりません。私は、セッションを問題なく開いたり閉じたりできると思っていました。また、Beanstalkd がジョブ操作を結び付けるために気にかけているのはそのジョブ ID だけでしたが、それは私の側では愚かだったかもしれません...これは、ジョブ キューへの私の最初の進出です.
ありがとう!
message-queue - Beanstalkd から ZeroMQ へ: 同じ方法で作業を分散できますか?
一般的な beanstalkd ワークフローでは、多くのワーカーがキュー/チューブでジョブをリッスンし、処理中にそのジョブをロックし、他のワーカーが再処理できないようにそのジョブを削除します。ジョブが失敗した場合 (たとえば、処理を完了するためのリソースが利用できない場合)、ジョブは別のワーカーがジョブを取得できるようにキューに戻ることができます。
このアプローチは ZeroMQ で可能ですか? たとえば、pub/sub モデルを使用すると、複数のサブスクライバーが同じジョブを受け取り、同時に処理できますか? push/pull または req/rep は同様のセットアップを提供しますか?
architecture - ワーカーがいつでもユーザーごとに 1 つのジョブしか処理できないジョブ キューイング システムの設計
複数のワーカーがこのキューを監視している単一のジョブ キューがあります。(各ジョブは 1 人のユーザーに対応します)。任意の時点で、ユーザーごとに複数のジョブがキューにある可能性があります。
ワーカーが一度にユーザーごとに複数のジョブを処理することは望ましくありません。ユーザーのジョブは、その時点でこのユーザーを処理しているワーカーが他にいない場合にのみ、ワーカーによって選択される必要があります。ユーザーのジョブがワーカーによって処理されている場合、次のユーザーのジョブが終了したらすぐに選択されるようにしたいと思います。
ワーカーをユーザーにとらわれないようにしたい (つまり、どのワーカーもどのユーザーのジョブも処理できる必要がある)。これは、水平方向にスケーリングするのに役立ちます。
どうすればいいですか?ユーザーごとに個別のキューを作成することについて考えましたが、ワーカーは膨大な数のキューを監視する必要があり、リソースを浪費する可能性があります。現在、Beanstalkd をキュー サーバーとして使用しています。
どんな助けでも大歓迎です。
service - 再起動せずに beanstalkd 構成を再ロードします
実際にbeanstalkdを再起動せずにbeanstalkd設定をリロードする方法はありますか?
sudo service beanstalkd restart
または使用するsudo service beanstalkd force-reload
と、すべてのキューがクリアされます。
(はい、将来的には永続モードで実行します)
load-balancing - 不均衡なワーカー間のロード バランシング ジョブ キュー
ジョブ キューを自動的に管理するツール (この場合は Beanstalkd) に取り組んでいます。現在、キューからジョブを取得するには、利用可能なワーカーの数を手動で設定する必要がありますが、これではジョブの急増が許容されないか、ジョブ時間の短い間にリソースが浪費されます。
ジョブ キュー サーバーとワーカーで実行されるクライアント/サーバーをセットアップしました。クライアントはサーバーに接続し、使用可能なリソース (CPU/メモリ) と、実行できるジョブの種類を報告します。次に、サーバーはキューを監視し、接続されたクライアントに対して、そのキューを処理するために実行するワーカーの数を 1 秒に 1 回指示します。現在、100 種類ほどの異なるワーカー タイプがあり、それらはすべて非常に異なる量の CPU/メモリを使用し、ワーカー サーバー自体のパフォーマンス レベルも異なります。
ジョブ キューの長さと各ワーカーのリソース要件に基づいて、ワークロードのバランスを最も効果的に取る手法を探しています。また、一部のジョブは他のジョブよりも優先度が高くなります。