47 lines
1.3 KiB
Python
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)
|