Setup MessageModerator as Docker build

refs #28
This commit is contained in:
Thomas Peetz
2025-07-16 16:04:33 +02:00
parent 0d99f383fb
commit e2ff26f6bf
10 changed files with 258 additions and 9 deletions
+45 -8
View File
@@ -2,6 +2,9 @@ import stomp
import json
import time
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from proton import Message, Event, symbol
from proton.handlers import MessagingHandler
from proton.reactor import Container, ReceiverOption, SenderOption
from config import get_logger
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
@@ -23,15 +26,49 @@ class MyListener(stomp.ConnectionListener):
self.log.info(f"found link: {url}")
class AddLinkReceiver(MessagingHandler):
def __init__(self, server, log):
super(AddLinkReceiver, self).__init__()
self.log = log
self.log.info("create AddLinkReceiver")
self.server = server
self.conn = None
self.address = "KontorMediaFile::add_link_file"
def on_start(self, event: Event) -> None:
self.log.info("AddLinkReceiver started...")
self.conn = event.container.connect(self.server, user="artemis", password="artemis")
event.container.create_receiver(self.conn, self.address, options=ReceiverCapabilityOptions())
def on_link_opened(self, event: Event) -> None:
self.log.info(f"AddLinkReceiver opened for address {self.address}")
def on_message(self, event: Event) -> None:
message = event.message
self.log.info(f"AddLinkReceiver message received: {message}")
class ReceiverCapabilityOptions(ReceiverOption):
def apply(self, receiver):
receiver.source.capabilities.put_object(symbol("queue"))
class SenderCapabilityOptions(SenderOption):
def apply(self, sender):
sender.source.capabilities.put_object(symbol("queue"))
if __name__ == '__main__':
log = get_logger(args.verbose, args.config)
log.info("kontor.read_queue started")
host = [('127.0.0.1', 61616)]
conn = stomp.Connection(host_and_ports=host)
conn.set_listener('', MyListener(log))
conn.connect(username='artemis', passcode='artemis', wait=True)
conn.subscribe(destination='KontorMediaFile::add_link_file', id=1, ack='auto', headers={})
time.sleep(5)
conn.disconnect()
handler = AddLinkReceiver("amqp://127.0.0.1:5672", log)
container = Container(handler)
container.run()
#host = [('127.0.0.1', 61616)]
#conn = stomp.Connection(host_and_ports=host)
#conn.set_listener('', MyListener(log))
#conn.connect(username='artemis', passcode='artemis', wait=True)
#conn.subscribe(destination='KontorMediaFile::add_link_file', id=1, ack='auto', headers={})
#time.sleep(5)
#conn.disconnect()
log.info("kontor.read_queue finished")