クラス PostgresSubscribableChannel

実装されているすべてのインターフェース:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareComponentSourceAwareExpressionCapableIntegrationPatternPostgresChannelMessageTableSubscriber.SubscriptionNamedComponentIntegrationManagementSubscribableChannelManagementTrackableComponentMessageChannelSubscribableChannelInterceptableChannel

public class PostgresSubscribableChannel extends AbstractSubscribableChannel implements PostgresChannelMessageTableSubscriber.Subscription
JdbcChannelMessageStore のグループ ID に送信されたメッセージのプッシュ通知を受信するための AbstractSubscribableChannel。このようなプッシュ通知を受信できるのは、Postgres データベースを使用している場合のみです。

機能するために、使用される Postgres データベースは、新しく到着したメッセージで通知を送信するためのトリガーを定義する必要があります。このトリガーは、この成果物内の schema-postgresql.sql ファイルで定義されていますが、コメント化されています。

導入:
6.0
作成者:
Rafael Winterhalter, Artem Bilan, Igor Lovich, Norbert Schneider
  • コンストラクターの詳細

    • PostgresSubscribableChannel

      public PostgresSubscribableChannel(JdbcChannelMessageStore jdbcChannelMessageStore, ObjectSE groupId, PostgresChannelMessageTableSubscriber messageTableSubscriber)
      Postgres データベースのサブスクライブ可能なチャネルを作成します。
      パラメーター:
      jdbcChannelMessageStore - 関連するリージョンに使用するメッセージストア。
      groupId - サブスクリプションの対象となるグループ ID。
      messageTableSubscriber - 通知の受信に使用するサブスクライバー。
  • メソッドの詳細

    • setDispatcherExecutor

      public void setDispatcherExecutor(ExecutorSE executor)
      新しく受信したメッセージのディスパッチに使用するエグゼキューターを設定します。
      パラメーター:
      executor - 使用するエグゼキュータ。
    • setTransactionManager

      public void setTransactionManager(PlatformTransactionManager transactionManager)
      メッセージ処理に使用するトランザクションマネージャーを設定します。各メッセージは個別のトランザクションで処理されます
      パラメーター:
      transactionManager - 使用するトランザクションマネージャー
      導入:
      6.0.5
      関連事項:
    • setRetryTemplate

      public void setRetryTemplate(org.springframework.retry.support.RetryTemplate retryTemplate)
      ダウンストリーム処理で例外が発生した場合の再試行に使用する再試行テンプレートを設定します
      パラメーター:
      retryTemplate - 使用する再試行テンプレート
      導入:
      6.0.5
      関連事項:
      • RetryTemplate
    • setErrorHandler

      public void setErrorHandler(ErrorHandler errorHandler)
      このチャネルでディスパッチできないメッセージには ErrorHandler を設定します。RetryTemplate の実行で例外がスローされた後の回復コールバックとして使用されます。
      パラメーター:
      errorHandler - 使用する ErrorHandler
      導入:
      6.0.9
    • onInit

      protected void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス AbstractMessageChannelonInit 
    • subscribe

      public boolean subscribe(MessageHandler handler)
      次で指定:
      インターフェース SubscribableChannelsubscribe 
      オーバーライド:
      クラス AbstractSubscribableChannelsubscribe 
    • unsubscribe

      public boolean unsubscribe(MessageHandler handle)
      次で指定:
      インターフェース SubscribableChannelunsubscribe 
      オーバーライド:
      クラス AbstractSubscribableChannelunsubscribe 
    • getDispatcher

      protected MessageDispatcher getDispatcher()
      次で指定:
      クラス AbstractSubscribableChannelgetDispatcher 
    • doSend

      protected boolean doSend(Message<?> message, long timeout)
      クラスからコピーされた説明: AbstractMessageChannel
      サブクラスはこのメソッドを実装する必要があります。負でないタイムアウトは、チャネルが容量に達した場合に待機する時間を示します(値が 0 の場合、成功の有無にかかわらずすぐに戻る必要があります)。負のタイムアウト値は、メッセージが受け入れられるか、ブロッキングスレッドが中断されるまでメソッドがブロックされることを示します。
      オーバーライド:
      クラス AbstractSubscribableChanneldoSend 
      パラメーター:
      message - メッセージ。
      timeout - タイムアウト。
      戻り値:
      send が成功した場合は true。
    • notifyUpdate

      public void notifyUpdate()
      インターフェースからコピーされた説明: PostgresChannelMessageTableSubscriber.Subscription
      指定されたリージョンとグループ ID にメッセージが追加されたことを示します。このメソッドは、新しいメッセージがない場合にも呼び出される可能性があることに注意してください。たとえば、別のサブスクリプションがすでにそれらのメッセージを読んでいる場合や、一時的な接続の切断中に新しいメッセージが到着した場合などです。
      次で指定:
      インターフェース PostgresChannelMessageTableSubscriber.SubscriptionnotifyUpdate 
    • getRegion

      public StringSE getRegion()
      インターフェースからコピーされた説明: PostgresChannelMessageTableSubscriber.Subscription
      このサブスクリプションが通知を受け取るリージョンを返します。
      次で指定:
      インターフェース PostgresChannelMessageTableSubscriber.SubscriptiongetRegion 
      戻り値:
      JdbcChannelMessageStore の関連領域。
    • getGroupId

      public ObjectSE getGroupId()
      インターフェースからコピーされた説明: PostgresChannelMessageTableSubscriber.Subscription
      このサブスクリプションが通知を受け取るグループ ID を返します。
      次で指定:
      インターフェース PostgresChannelMessageTableSubscriber.SubscriptiongetGroupId 
      戻り値:
      PostgresSubscribableChannel のグループ ID。