検索

ホームページ  >  に質問  >  本文

java - スケジュールされたタスクのポーリングデータベースへの負荷を解決する方法

スケジュールされたタスクが多数あり、それらはさまざまなサーバーに分散されています。条件 (ステータス) を満たすデータをデータベースにポーリングして処理します。このようにして、数百または数千のスケジュールされたタスクがデータベースをポーリングし、データベースの負荷が急激に増加することに直接つながります。

この状況にどう対処すればよいでしょうか?データベースの負荷を軽減する方法。

PHPzPHPz2744日前1223

全員に返信(3)返信します

  • 黄舟

    黄舟2017-05-17 10:06:44

    1. 類似または同様のポーリングタスクを結合して、ポーリングタスクの数を減らします

    2. ポーリングタスクの実行頻度を減らす

    3. ポーリングタスク内のSQLステートメントを最適化して、データベースクエリの負荷を軽減します

    4. ポーリングタスクの実行時間を均等に分割し、すべてのタスクを特定の期間に集中させないでください

    5. ポーリングタスクを使用しないでください

    6. データベースをアップグレード

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-17 10:06:44

    ポーリングするデータ ID を個別に保存し、タスクで ID テーブルをポーリングし、ID に基づいて単一のクエリを実行してみます

    返事
    0
  • PHPz

    PHPz2017-05-17 10:06:44

    さらに、データベースは複数のスレーブ ライブラリでセットアップすることもでき、スケジュールされたタスクは異なるスレーブ ライブラリからデータをポーリングできるため、データベースへの負担ははるかに小さくなります

    返事
    0
  • キャンセル返事