From a7358eec02cf896c29bb3bce883d7088897952d3 Mon Sep 17 00:00:00 2001
From: Krish Moodbidri <krish94@uab.edu>
Date: Thu, 11 Mar 2021 02:07:29 -0600
Subject: [PATCH] added timeout function

---
 tasks.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tasks.py b/tasks.py
index d96da27..6001440 100644
--- a/tasks.py
+++ b/tasks.py
@@ -2,6 +2,7 @@ import vars
 import sys
 import json
 import time
+import signal
 
 from celery import Celery
 from flask_socketio import SocketIO
@@ -13,6 +14,7 @@ broker_url = vars.broker_url
 celery = Celery('flask_user_reg', broker=broker_url)
 
 socketio = SocketIO(message_queue=vars.message_queue)
+timeout = 60
 
 def callback(channel, method, properties, body):
     msg = json.loads(body)
@@ -33,6 +35,9 @@ def send_msg(event, room):
    print("Post '{}' to room '{}'".format(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):
@@ -47,6 +52,12 @@ def celery_create_account(json, session):
     print(username)
     rc_util.add_account(username, email, fullname, reason)
     print('sent account info')
+    
+    # Set initial timeout timer
+    signal.signal(signal.SIGALRM, timeout_handler)
+    signal.setitimer(signal.ITIMER_REAL, timeout)
+
+
     print('Waiting for completion...')
     rc_util.consume(username, routing_key=f'complete.{username}', callback=callback)
     send_msg('account ready', room) 
-- 
GitLab