2024-01-15 16:46:33 +01:00

47 lines
1.3 KiB
Python

import json
from multiprocessing import Process
from time import sleep
from kn_utils.logging import logger
from pyinfra.config import get_config
from pyinfra.queue.development_queue_manager import DevelopmentQueueManager
from pyinfra.queue.queue_manager import QueueManager, QueueManagerV2
def callback(x):
sleep(4)
response = json.dumps({"status": "success"}).encode("utf-8")
return response
class TestQueueManager:
def test_basic_functionality(self, settings):
message = {
"targetFilePath": "test/target.json.gz",
"responseFilePath": "test/response.json.gz",
}
queue_manager = QueueManagerV2()
# queue_manager_old = QueueManager(get_config())
queue_manager.publish_message(message)
queue_manager.publish_message(message)
queue_manager.publish_message(message)
logger.info("Published message")
# consume = lambda: queue_manager.start_consuming(callback)
consume = lambda: queue_manager.start_consuming(callback)
p = Process(target=consume)
p.start()
wait_time = 20
# logger.info(f"Waiting {wait_time} seconds for the consumer to process the message...")
sleep(wait_time)
p.kill()
response = queue_manager.get_message()
logger.info(f"Response: {response}")
print(response)