-
Krish Moodbidri authored
Changed account error message from send_msg to use socket.emit and send the error message to the UI Removed account timeout while testing, to ensure error's caused are only due to rabbitmq account create error and not timeout from client to server
431f54d5
tasks.py 1.81 KiB
import vars
import sys
import json
import time
import signal
from celery import Celery
from flask_socketio import SocketIO
sys.path.append('/cm/shared/rabbitmq_agents/')
import rc_util
broker_url = vars.broker_url
celery = Celery('flask_user_reg', broker=broker_url)
socketio = SocketIO(message_queue=vars.message_queue)
timeout = 60
def gen_f(room):
def callback(channel, method, properties, body):
msg = json.loads(body)
username = msg['username']
if msg['success']:
print(f'Account for {username} has been created.')
send_msg('account ready', room)
else:
print(f"There's some issue while creating account for {username}")
errmsg = msg.get('errmsg', [])
for err in errmsg:
print(err)
socketio.emit('account error', errmsg, room= room)
rc_util.rc_rmq.stop_consume()
rc_util.rc_rmq.delete_queue()
return callback
def send_msg(event, room):
socketio.emit(event, room=room)
def timeout_handler(signum, frame):
print("Process timeout, there's might some issue with agents")
rc_util.rc_rmq.stop_consume()
@celery.task
def celery_create_account(json, session):
room = session
username= json['username']
email= json['email']
fullname= json['fullname']
reason= json['reason']
print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue')
send_msg('creating account', room)
print(username)
rc_util.add_account(username, email, fullname, reason)
print('sent account info')
print('Waiting for completion...')
#print(callback(self.EXCHANGE, self.EXCHANGE,self.EXCHANGE,self.EXCHANGE))
rc_util.consume(username, routing_key=f'complete.{username}', callback=gen_f(room))
#send_msg('account ready', room)