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 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') # rc_util.consume(username) # print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username) # send_msg('account ready', room) # return #rc_util.add_account(args.username, email=args.email, full=args.full_name, reason=args.reason) #print(f'Account for {args.username} requested.') # Set initial timeout timer signal.signal(signal.SIGALRM, timeout_handler) signal.setitimer(signal.ITIMER_REAL, timeout) print('Waiting for completion...') rc_util.consume(args.username, routing_key=f'complete.{args.username}', callback=callback)