from celery import Celery import time from flask_socketio import SocketIO import subprocess import vars import sys sys.path.append('/cm/shared/rabbitmq_agents/') import rc_util from gevent import monkey monkey.patch_all(subprocess=True) broker_url = vars.broker_url celery = Celery('flask_user_reg', broker=broker_url) socketio = SocketIO(message_queue=vars.message_queue) def callback(): rc_util.rc_rmq.stop_consume() rc_util.rc_rmq.delete_queue() def send_msg(event, room): print("Post '{}' to room '{}'".format(event,room)) socketio.emit(event, room=room) @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...') rc_util.consume(username, routing_key=f'complete.{username}', callback=callback)