Channeldistribution Development Guide

Begriffsklärung:

  • ChannelDistribution: Klasse, die eine Nachricht entgegen nimmt, ggf. eine Funktion ausführt und i.d.R. die Nachricht danach in einen bestimmten Channel verschiebt (Eigentlich wird der aktuelle Channelname übergeben und ein Channelname zurückgegeben). Eine ChannelDistribution implementiert das Interface IChannelDistribution

  • ChannelDistributionHandler: Klasse, die nach Bedingungen verschiedene ChannelDistributions in einer bestimmten Reihenfolge aufruft. Welche ChannelDistributions in welcher Reihenfolge bei welchen Bedingungen aufgerufen werden kann konfiguriert werden. Nachdem alle ChannelDistributions durchlaufen wurden wird der aktuelle Channel zurückgegeben.

Konfiguration

Die Konfiguration wird in der Extensionvariable „EXT_CHANNEL_DIST“ durchgeführt.

Zuerst wird das Property „registered.classes“ auf eine mit Semikolon getrennte Liste von ChannelDistribution-Klassen gesetzt.

Danach werden zu jeder Klasse 3 Properties gesetzt, um die Bedingungen zu definieren unter denen die entsprechende ChannelDistribution ausgeführt wird:

className.registeredServiceIds: Service, bei dem diese ChannelDistribution ausgeführt werden soll

className.executeOnChannelId: ChannelDistribution wird nur ausgeführt, wenn die Nachricht in diesem Channel ist

className.skipChannelDistributionOnChannelId: Weitere, nachfolgende ChannelDistributions werden nicht ausgeführt, falls die Nachricht nach der Verarbeitung dieser ChannelDistribution in dem hier definierten Channel ist.

Funktionsweise

Eine Nachricht kommt über einen Inbound Service (Crawler) herein und wird automatisch in einen (in der Servicekonfiguration eingestellten) default Channel. Danach wird die Formaterkennung durchgeführt. Nun werden alle ChannelDistributionHandler durchlaufen und anhand der für die entsprechende Klasse gesetzten Properties geprüft, ob sie ausgeführt werden soll.

Wenn eine ChannelDistribution ausgeführt wird, so gibt sie einen Channel zurück, in den die Nachricht verschoben wird, bevor zur nächsten ChannelDistribution übergegangen wird. Somit kann eine Nachricht durch verschiedene ChannelDistributions auch öfter den Channel wechseln.

Kommt keine ChannelDistribution zur Ausführung, so bleibt die Nachricht im default Channel.

ChannelDistribution

View Me   Edit Me