クラス LockRegistryLeaderInitiator

java.lang.ObjectSE
org.springframework.integration.support.leader.LockRegistryLeaderInitiator
実装されたすべてのインターフェース:
AwareDisposableBeanApplicationEventPublisherAwareLifecyclePhasedSmartLifecycle

public class LockRegistryLeaderInitiator extends ObjectSE implements SmartLifecycle, DisposableBean, ApplicationEventPublisherAware
ロックの保持に基づいてリーダー選出を開始するコンポーネント。ロックに適切なプロパティ(有効期限のあるグローバル)がある場合、リーダーが複数存在することはありませんが、リーダーが短期間存在しない場合があります。ロックの保証が強化されており、有効期限が切れたり盗まれたりしたときにホルダーのスレッドが中断される場合は、パラメーターを調整して、リーダーのない期間をロックプロバイダーへの遅延によってのみ制限されるように減らすことができます。選出プロセスは、ロックを保持して取得しようとしている間、スレッドを永続的に拘束するため、ネイティブリーダーイニシエーター(ロックに基づかない)の方が効率的である可能性があります。使用可能なネイティブリーダーイニシエーターがないが、ロックレジストリ(共有データベースなど)がある場合、この実装が役立つ可能性があります。
導入:
4.3.1
作成者:
Dave Syer, Artem Bilan, Vedran Pavic, Glenn Renfro, Kiel Boatman, Gary Russell, Christian Tzolov
  • フィールドの詳細

  • コンストラクターの詳細

    • LockRegistryLeaderInitiator

      public LockRegistryLeaderInitiator(LockRegistry locks)
      提供されたロックレジストリとデフォルトの候補(リーダーシップイベントをログに記録するだけ)を使用して、新しいリーダーイニシエーターを作成します。
      パラメーター:
      locks - レジストリをロックする
    • LockRegistryLeaderInitiator

      public LockRegistryLeaderInitiator(LockRegistry locks, Candidate candidate)
      新しいリーダーイニシエーターを作成します。候補の実装は、リーダーシップイベントをリッスンし、ビジネスアクションを実行するためにユーザーによって提供されます。
      パラメーター:
      locks - レジストリをロックする
      candidate - リーダー選出候補
  • メソッドの詳細

    • setTaskExecutor

      public void setTaskExecutor(AsyncTaskExecutor taskExecutor)
      リーダーシップデーモンを実行するための AsyncTaskExecutor を設定します。
      パラメーター:
      taskExecutor - 使用する AsyncTaskExecutor
      導入:
      6.2
    • setHeartBeatMillis

      public void setHeartBeatMillis(long heartBeatMillis)
    • setBusyWaitMillis

      public void setBusyWaitMillis(long busyWaitMillis)
    • setLeaderEventPublisher

      public void setLeaderEventPublisher(LeaderEventPublisher leaderEventPublisher)
      LeaderEventPublisher を設定してください。
      パラメーター:
      leaderEventPublisher - イベント発行者
    • setApplicationEventPublisher

      public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
      次で指定:
      インターフェース ApplicationEventPublisherAwaresetApplicationEventPublisher 
    • isRunning

      public boolean isRunning()
      次で指定:
      インターフェース LifecycleisRunning 
      戻り値:
      この candidate のリーダー選出が実行されている場合は true。
    • getPhase

      public int getPhase()
      次で指定:
      インターフェース PhasedgetPhase 
      次で指定:
      インターフェース SmartLifecyclegetPhase 
    • setPhase

      public void setPhase(int phase)
      パラメーター:
      phase - フェーズ
      関連事項:
    • isAutoStartup

      public boolean isAutoStartup()
      次で指定:
      インターフェース SmartLifecycleisAutoStartup 
    • setAutoStartup

      public void setAutoStartup(boolean autoStartup)
      パラメーター:
      autoStartup - 自動的に開始する場合は true
      関連事項:
    • getContext

      public Context getContext()
      戻り値:
      コンテキスト。
    • isPublishFailedEvents

      public boolean isPublishFailedEvents()
    • setPublishFailedEvents

      public void setPublishFailedEvents(boolean publishFailedEvents)
      指定された applicationEventPublisher への失敗したイベントの公開を有効または無効にします。リーダー選出中にミューテックスを取得しようとしているときに公開される可能性のある失敗イベントの数が多いため (別のインスタンスがミューテックスを保持している場合)、デフォルトは false に設定されています。
      パラメーター:
      publishFailedEvents - true の場合、失敗したイベントが公開されるというブール値。false の場合、失敗は公開されません。デフォルトは false です。
      導入:
      5.0
    • start

      public void start()
      リーダー選出のための candidate の登録を開始します。
      次で指定:
      インターフェース Lifecyclestart 
    • destroy

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy 
    • stop

      public void stop()
      リーダー選出のための candidate の登録を停止します。候補者が現在リーダーである場合、そのリーダーシップは取り消されます。
      次で指定:
      インターフェース Lifecyclestop