From 76a74efbe7d0e2686fb243c9110f1534f95f3dec Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Tue, 15 Mar 2022 21:12:45 +0300 Subject: [PATCH] queue --- Main/views/TaskView.py | 11 ++++++++--- SprintLib/queue.py | 10 ++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Main/views/TaskView.py b/Main/views/TaskView.py index c35fa5e..4e8c9ca 100644 --- a/Main/views/TaskView.py +++ b/Main/views/TaskView.py @@ -4,7 +4,7 @@ from zipfile import ZipFile from Main.models import Solution, Progress, SolutionFile from SprintLib.BaseView import BaseView, AccessError from SprintLib.language import languages -from SprintLib.queue import send_testing +from SprintLib.queue import send_to_queue from SprintLib.utils import write_bytes @@ -49,7 +49,7 @@ class TaskView(BaseView): solution=self.solution, fs_id=fs_id, ) - send_testing(self.solution) + self.send_testing() return ("/task?setTask_id=" + str(self.entities.setTask.id)) if hasattr(self.entities, 'setTask') else ("/task?task_id=" + str(self.entities.task.id)) def post_1(self): @@ -75,5 +75,10 @@ class TaskView(BaseView): solution=self.solution, fs_id=fs_id, ) - send_testing(self.solution) + self.send_testing() return ("/task?setTask_id=" + str(self.entities.setTask.id)) if hasattr(self.entities, 'setTask') else ("/task?task_id=" + str(self.entities.task.id)) + + def send_testing(self): + if self.solution.set is not None and len(self.solution.set.checkers.all()) != 0: + return + send_to_queue("test", {"id": self.solution.id}) diff --git a/SprintLib/queue.py b/SprintLib/queue.py index 20ad01c..e7cd722 100644 --- a/SprintLib/queue.py +++ b/SprintLib/queue.py @@ -7,18 +7,16 @@ from pika.adapters.utils.connection_workflow import AMQPConnectorException from Sprint import settings -def send_testing(solution): - if solution.set is not None and len(solution.set.checkers.all()) != 0: - return +def send_to_queue(queue_name, payload): with pika.BlockingConnection( pika.ConnectionParameters(host=settings.RABBIT_HOST, port=settings.RABBIT_PORT) ) as connection: channel = connection.channel() - channel.queue_declare(queue="test") + channel.queue_declare(queue=queue_name) channel.basic_publish( exchange="", - routing_key="test", - body=json.dumps({"id": solution.id}).encode('utf-8'), + routing_key=queue_name, + body=json.dumps(payload).encode('utf-8'), )