@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user