問題タブ [job-queue]
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.
cron - Ironworker タスク キューの遅延の管理
私は、iPhone クライアントから API にリクエストを送信するプロジェクトを持っています。API は Ironworker タスクを生成します。タスクが完了すると、iPhone クライアントといくつかの Android フォンにすべてがうまくいったことを通知し、すべてソケットに接続する必要があります。これはすべて 30 秒以内に発生する必要があり、そうでない場合、iPhone と Android フォンはソケット接続を取得せず、代わりに「後でもう一度やり直してください」という応答を受け取る必要があります。
しかし、時々、ワーカー キューである ironworker がバックアップされ、タスク (ジョブ) を完了するのに 2 ~ 5 分かかることがあります。これを起こさせない最善の方法は何ですか?キュー内のジョブを監視する方法と、ジョブを強制終了して「後でもう一度やり直してください」を送信するのに時間がかかる場合は、マネージャーを紹介できますか?
マネージャーが解決策ではない場合、どうすればこれを設定できますか?
php - ユーザーごとの Beanstalkd キュー プロセス
私は数千人のユーザーを持つアプリケーションを持っています。各ユーザーは、10 ~ 100 のジョブをキューに入れることができます。ワーカー (~10) が 10 個のジョブ (同じユーザーからのものである可能性があります) ではなく、10 人の異なるユーザーの 10 個のジョブを処理したくありません。
したがって、上記の例では、ワーカーが次の順序で処理するようにします。
これをbeanstalkd(推奨)またはgearmanで簡単に実装する方法はありますか?
celery - Celery でタスク アンタゴニストを折りたたんで連続して実行する方法
セロリにタスクAとBがあります。B は A のアンタゴニストです。したがって、このタスクが同じパラメーターで並行して実行されると、システムは矛盾します。2 つの質問があります。
パラメータに基づいて、タスク A と B を常に連続して実行できますか? パラメータ 1 の A とパラメータ 1 の B を連続して実行したいのですが、A(1) と B(2) が並行して実行される可能性があります。
まだ実行されていないタスクの繰り返しシーケンスを折りたたむ方法はありますか? たとえば、ブローカー (私の場合は Redis) に ABABAB タスクがありますが、AB を実行することはできますか?
どちらの質問も高度なブローカーで解決できると思いがちですが、RabbitMQ のデプロイは避けたいと思います。
前もって感謝します。
file - Beanstalkd またはその他のジョブ/メッセージ キュー: ファイルを送信しますか?
ジョブ/メッセージ キュー テクノロジを探していました。主なもの (RabbitMQ、ActiveMQ、Apollo、ZeroMQ..) を比較した後、明らかに、RabbitMQ と比較して、「20% の重量と複雑さで 80% の機能を提供する」ため、Beanstalkd を選択しました。
しかし、それがどのように機能するかを調べているうちに、このキュー システムを介してファイルを送信する方法が見つかりませんでした。それを達成する方法はありますか?
私たちの状況を説明する必要があるかもしれません。Web サーバーとローカル サーバーがあります。キューで実現したいことは、まず、Web サーバーがローカル サーバーに複雑な PDF を生成するよう「要求」し、それが完了したらそれを Web サーバーに送り返し、訪問者に表示できるようにすることです。 .
多分それはそのための適切な技術ではありませんか?
php - ZF2 - SlmQueueBeanstalkd と DOMPDFModule を使用して PDF ファイルを作成するジョブ キュー
ZF でSlmQueueBeanstalkdとを使用して PDF ファイルを作成するジョブ キューを実行しようとしています。」DOMPDFModule
これが私のコントローラーでやっていることです:
これは仕事です:
1回目はファイルが作成され作業は成功しますが、2回目はタスクが埋もれてファイルが作成されません。
モデルを 2 回目にレンダリングしようとすると、エンドレス サイクルにとどまるようです。
asynchronous - ジョブキューのワーカー タスクを Web ページに同期的に表示する
インターネットからファイルをダウンロードする RQ ワーカーに非同期タスクがあります。Web ページの進行状況を監視したいのですが、インターネットで検索しましたが、進行状況またはタスクの状態を同期的に表示する方法が見つかりません。
つまり、ジョブキューの状態が変わるたびに RQ ワーカーの状態を mysql に保存し、mysql の行を HTML Web ページで更新し、タイマーを設定し、1 秒または 2 秒ごとに API を要求してから、ステータス div を更新します。
この問題を解決するためのよりエレガントな方法が他にあることを知りたいだけですか?
oracle - Oracle Job Schedulerが「スタック」
XX と XY という 2 つの運用環境があります。どちらも Oracle 11g リリース 11.2.0.2.0 上にあります。どちらの環境にも、ジョブをキューに入れたりキューから取り出して処理するためのキュー テーブルとジョブ キューがあります。アプリケーション サーバーは Apache Tomcat バージョン 6.0.32 です。
私が直面している問題は、XX 環境では Oracle スケジューラがほぼ毎日現地時間の午後 4 時 30 分に「ハング」または「スタック」するのに対し、XY 環境では完全に正常に動作することです。スケジュールされたジョブのエントリがキュー テーブルに蓄積され始め、アラートがトリガーされます。その後、誰かがアプリケーション サーバーを再起動する必要があります。その後、すべてが完全に正常に機能し、保留中のジョブは問題なく処理されます。DBA は常にデータベースに問題はないと言っていますが、私はあまり確信が持てません。
Google で検索すると、このリンクにたどり着きました: 11.2 へのアップグレード後に DBMS_SCHEDULER ジョブがスタック し、説明に基づいて、DB パラメータjob_queue_processesをチェックして比較しました。それは同じ値/詳細を持っているので、私はここで行き止まりになっています。

アプリケーションを再起動しているときに、出力/表示で以下の例外が発生しましたが、ログには記録されませんでした:
そこで今疑問に思っているのは、
- ジョブがエンキューされている間に DB への接続が失われ、その間に Oracle スケジューラが「ハング」することはありますか?
- 確認/検証する必要がある他のデータベース パラメータはありますか? これは Oracle の既知のバグですか? はいの場合、それはどこかに文書化されていますか? すみません、読み飛ばしたかもしれません。
- DBA に確認を依頼する必要があるその他の情報はありますか?
助けてくれてありがとう。
編集: クエリの出力へのリンク =>select * from DBA_SCHEDULER_JOBSリンクの Excel に記載されています: Job_output.xlsx
ありがとう!
2014 年 3 月 20 日更新
問題はまだ解決されていません。したがって、クエリからの出力が質問の下にいくつか掲載されています。
symfony - ギアマンを使用してジョブ キューを適切に実装し、サブタスクからステータスを取得する
私が達成したいこと: ユーザーがデータファイルをアップロードします。キューに追加され、順番が来ると、そのファイル内の行を変換することで構成される多数の並列タスクが作成されます。ユーザーはいつでも、変換された行数のステータス (%) を取得できます。
おそらく将来、ワーカーを他のサーバーなどに移動するのは良いことなので、ギアマンを使用することにしました。私が理解しているように、ワーカーを使用するときはデータベースへの不要な接続を使用しないようにする必要があるため、データベースにステータスを保存することは実行可能なオプションではありません。
私はこのようなことを試しました:コントローラーは新しいバックグラウンドタスク(ファイル処理)を作成し、このタスクはより小さなタスク(変換、並列処理を実現するためにバックグラウンドを使用)を呼び出し、最終結果をデータベースにアップロードします。Gearman イベント リスナーは、非バックグラウンド タスクに対してのみ機能します (少なくとも、アタッチしようとした場合)。
すべてのタスクをフェッチし、ジョブ パラメータをチェックして特定の ID にリンクする必要がありますか、それとも追加のパラメータをジョブに渡すことはできますか?
GearmanClient::jobStatus にはジョブ ハンドルが必要ですが、これは 1 つの要求で作成されたバックグラウンド プロセスであり、別の要求では必要であるため、アクセスできません。
テキストの壁で申し訳ありません。ご協力いただきありがとうございます。
java - run() の後に実行されるスレッドでの Java コールバックの実行
私はジョブ キュー ライブラリを使用しています。ここでは、 を定義JobしてJobManager. にJobManagerは、をキューから取り出して を呼び出すThreadGroupwith ワーカーがあります。JobJob.onRun()
スレッドの量は、スレッドの最大量と最小量、負荷係数 (ワーカー スレッドが新しいジョブを作成する前に保持できる未処理のジョブの数)、最小値を超えるスレッドのアイドル タイムアウトを指定することによって設定されます。run()したがって、新しいジョブがなく、アイドル タイムアウトに達すると、ワーカー スレッドは終了します。
一部Jobの s では、非同期 API のみを公開するライブラリを使用しています。これらを onRun() で使用しても安全ですか?
たとえば、応答を提供するコールバックを受け取るネットワーク リクエストを作成したい場合、コールバックは次のように呼び出されます。