add queues and processing
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s

This commit is contained in:
Thomas Peetz
2026-08-05 15:46:39 +02:00
parent 6abbe2e585
commit 1dcf342736
5 changed files with 74 additions and 34 deletions
+4 -3
View File
@@ -4,12 +4,13 @@ read file with URLs and store in DB
import json
import logging.config
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
from pathlib import Path
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
import requests
import yaml
from platformdirs import PlatformDirs
from proton import Message, Event
from proton import Event, Message
from proton.handlers import MessagingHandler
from proton.reactor import Container
@@ -53,7 +54,7 @@ class AddLinkMessage(MessagingHandler):
super(AddLinkMessage, self).__init__()
log.info("create AddLinkMessage")
self.server = server
self.address = "add_link_media"
self.address = "media.link.add"
self.message = message
self.log = log
+17 -31
View File
@@ -2,51 +2,37 @@
read file with URLs and store in DB
"""
import json
import logging.config
from pathlib import Path
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
import yaml
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
import msgspec
import stomp
from platformdirs import PlatformDirs
from log import get_logger
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument("-u", "--url", help="link")
parser.add_argument("--config", "-c", default="kontor-docker")
parser.add_argument("--verbose", "-v", action="count", default=0)
parser.add_argument("--server", "-s", default="127.0.0.1")
parser.add_argument("--port", "-p", default="61616")
parser.add_argument("--destination", "-d", default="media.link.add")
args = parser.parse_args()
def get_logger(level: int, config: str):
"""
create Logger with configuration from config file
"""
dirs = PlatformDirs(config)
logging_config = Path(dirs.user_config_dir, "logging-config.yaml")
with open(logging_config, "rt", encoding="UTF-8") as f:
config_dict = yaml.safe_load(f.read())
logging.config.dictConfig(config_dict)
log = logging.getLogger("development")
if level is not None:
match level:
case 0:
log.setLevel(logging.INFO)
case 1:
log.setLevel(logging.DEBUG)
case _:
log.setLevel(logging.CRITICAL)
return log
class Link(msgspec.Struct):
url: str
if __name__ == "__main__":
logger = get_logger(args.verbose, args.config)
logger.info("kontor.add_link_stomp started")
link: str = args.url
data = {"url": link}
server_url = [(args.server,61613)]
server_url = [(args.server, args.port)]
conn = stomp.Connection(host_and_ports=server_url)
conn.connect('artemis', 'artemis', wait=True, headers={'client-id': 'wsl'})
conn.send(body=json.dumps(data), destination="update_title")
#Container(AddLinkMessage(server=server_url, message=data, log=logger)).run()
conn.connect(username="artemis", passcode="artemis", wait=True)
link: Link = Link(url=args.url)
json_bytes = msgspec.json.encode(link)
conn.send(body=json_bytes, destination=args.destination)
logger.info("kontor.add_link finished")
+1
View File
@@ -39,6 +39,7 @@ def get_logger(level: int, name: str) -> logging.Logger:
case 1:
logging.getLogger("requests").setLevel(logging.INFO)
logging.getLogger("urllib3").setLevel(logging.INFO)
logging.getLogger("stomp").setLevel(logging.INFO)
logger.setLevel(logging.INFO)
case 2:
logger.setLevel(logging.DEBUG)
@@ -0,0 +1,26 @@
package de.thpeetz.kontor.integration.routes;
import org.apache.camel.builder.RouteBuilder;
import de.thpeetz.kontor.media.services.MediaFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class QueueMediaLoFiAdd extends RouteBuilder {
@Autowired
private final MediaFileService mediaFileService;
@Autowired
public QueueMediaLoFiAdd(MediaFileService mediaFileService) {
this.mediaFileService = mediaFileService;
}
@Override
public void configure() throws Exception {
from("jms:queue:media.lofi.add")
.routeId("read-queue-media-lofi-add")
.log("${body}")
.to("jms:queue:media.lofi.add.processed");
}
}
@@ -0,0 +1,26 @@
package de.thpeetz.kontor.integration.routes;
import org.apache.camel.builder.RouteBuilder;
import de.thpeetz.kontor.media.services.MediaFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class QueueMediaVideoAdd extends RouteBuilder {
@Autowired
private final MediaFileService mediaFileService;
@Autowired
public QueueMediaVideoAdd(MediaFileService mediaFileService) {
this.mediaFileService = mediaFileService;
}
@Override
public void configure() throws Exception {
from("jms:queue:media.video.add")
.routeId("read-queue-media-video-add")
.log("${body}")
.to("jms:queue:media.video.add.processed");
}
}