all queues now use same logger

This commit is contained in:
Malachy Byrne 2023-04-13 00:50:14 +01:00
parent d060d8e711
commit 5292c409ca
Signed by: malmal200
GPG Key ID: EC21443030A655D9
5 changed files with 24 additions and 17 deletions

View File

@ -1,13 +1,13 @@
import pika
from functions import log
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', 5672, '/', pika.PlainCredentials("user", "password")))
channel = connection.channel()
channel.queue_declare(queue='research_proposals')
print("Waiting for proposals...")
def process_proposal(ch, method, properties, body):
proposal = body.decode()
acronym, title, description, amount = proposal.split(',')
@ -19,14 +19,19 @@ def process_proposal(ch, method, properties, body):
body="approved")
project_info=f"{acronym},{title},{description},{amount}"
channel.basic_publish(exchange='', routing_key='approved_projects', body=project_info)
print(f"{acronym} approved")
log(f"{acronym} approved")
else:
channel.basic_publish(exchange='',
routing_key=properties.reply_to,
properties=pika.BasicProperties(correlation_id=properties.correlation_id),
body="rejected")
print(f"{acronym} rejected")
log(f"{acronym} rejected")
channel.basic_consume(queue='research_proposals', on_message_callback=process_proposal, auto_ack=True)
channel.start_consuming()
try:
channel.start_consuming()
except KeyboardInterrupt:
channel.stop_consuming()
connection.close()

2
log.py
View File

@ -15,10 +15,8 @@ def log(ch, method, properties, body):
channel.basic_consume(queue='log', on_message_callback=log, auto_ack=True)
try:
print("Opening logs")
channel.start_consuming()
except KeyboardInterrupt:
channel.stop_consuming()
channel.close()
print("Closing logs")

View File

@ -23,7 +23,7 @@ def get_project(ch, method, properties, body):
routing_key=properties.reply_to,
properties=pika.BasicProperties(correlation_id=properties.correlation_id),
body=project)
print(f"got project {project_id}")
log(f"got project {project_id}")
def save_project(ch, method, properties, body):

View File

@ -1,7 +1,8 @@
import pika
import uuid
from functions import log
class ResearchProposal(object):
@ -45,6 +46,6 @@ proposals = [
for proposal in proposals:
proposal_client = ResearchProposal()
print(f"{proposal['acronym']} sends proposal")
log(f"{proposal['acronym']} sends proposal")
response = proposal_client.call(proposal)
print(f"{proposal['acronym']} got {response}")
log(f"{proposal['acronym']} got {response}")

View File

@ -1,6 +1,9 @@
import os
import pika
import os
from functions import log
if not os.path.exists("approved_projects"):
os.makedirs("approved_projects")
@ -12,20 +15,20 @@ channel.queue_declare(queue='approved_projects')
def process_approved_project(ch, method, properties, body):
proposal = body.decode()
acronym, title, description, amount = proposal.split(',')
filename = os.path.join(os.getcwd(), 'approved_projects', f'{acronym}.txt')
with open(filename, 'w') as f:
f.write(f'Acronym: {acronym}\n')
f.write(f'Researcher: {description}\n')
f.write(f'Budget: {amount}\n')
print(f'Approved project received: {body}')
log(f'Approved project received: {body}')
channel.basic_consume(queue='approved_projects', on_message_callback=process_approved_project, auto_ack=True)
try:
print('University waiting for approved projects...')
log('University waiting for approved projects...')
channel.start_consuming()
except KeyboardInterrupt:
channel.stop_consuming()