public class SubjectMessageHandler
extends org.springframework.integration.handler.AbstractMessageProducingHandler
implements org.springframework.beans.factory.DisposableBeanObservable に処理を委譲することで、MessageHandler のアイテムを一度に配信するように調整します。プロセッサーの outputStream は、メッセージを作成し、それを出力チャネルに送信するために使用されます。入力チャネルと出力チャネルが MessageBus に接続されている場合、onNext の呼び出しを介して入力ストリームに配信されたデータは、メッセージバスのディスパッチャースレッドで呼び出され、出力チャネルにメッセージを送信すると、メッセージバス上の IO 操作が行われます。実装では SerializedSubject を使用します。これには、Observabale の状態を、onNext を呼び出すすべての受信ディスパッチャースレッド間で共有できるという利点があります。欠点は、処理と出力チャネルへの送信がディスパッチャースレッドの 1 つでシリアルに実行されることです。このハンドラーを使用すると、データを処理するときに非常に自然な最初のエクスペリエンスが得られます。たとえば、ストリーム http | rxjava-processor | log があり、rxjava-processor が buffer(5) を実行してから単一の値を生成するとします。http ソースに 10 個のメッセージを送信すると、使用されるディスパッチャースレッドの数に関係なく、ログには 2 つのメッセージが生成されます。プロセッサーから outputStream を返す前に observeOn を明示的に呼び出すことで、出力チャネルへの送信を行う outputStream サブスクライバーが使用するスレッドを変更できます。複数の Observable にまたがるディスパッチャースレッドでの同時実行には、MultipleSubjectMessageHandler を使用します。すべてのエラー処理はプロセッサー実装の責任です。| 修飾子と型 | フィールドと説明 |
|---|---|
protected org.slf4j.Logger | logger |
| コンストラクターと説明 |
|---|
SubjectMessageHandler(Processor processor) |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | destroy() |
protected void | handleMessageInternal(org.springframework.messaging.Message<?> message) |
getOutputChannel, onInit, produceOutput, sendOutputs, setOutputChannel, setOutputChannelName, setSendTimeout, shouldCopyRequestHeaders, shouldSplitOutputconfigureMetrics, getActiveCount, getActiveCountLong, getComponentType, getDuration, getErrorCount, getErrorCountLong, getHandleCount, getHandleCountLong, getManagedName, getManagedType, getMaxDuration, getMeanDuration, getMinDuration, getOrder, getStandardDeviationDuration, handleMessage, isCountsEnabled, isLoggingEnabled, isStatsEnabled, reset, setCountsEnabled, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, setStatsEnabledafterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setTaskScheduler, toStringpublic SubjectMessageHandler(Processor processor)
protected void handleMessageInternal(org.springframework.messaging.Message<?> message)
throws java.lang.Exceptionorg.springframework.integration.handler.AbstractMessageHandler の handleMessageInternal java.lang.Exceptionpublic void destroy()
throws java.lang.Exceptionorg.springframework.beans.factory.DisposableBean の destroy java.lang.Exception