mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-23 06:37:15 +00:00
Renamed variables + added comments
This commit is contained in:
parent
9ca3e79e70
commit
0fce3f5d65
1 changed files with 28 additions and 20 deletions
|
@ -605,12 +605,13 @@ def kill_module(module, pid):
|
||||||
cleanRedis()
|
cleanRedis()
|
||||||
|
|
||||||
|
|
||||||
|
# Fetch the data for all queue
|
||||||
def fetchQueueData():
|
def fetchQueueData():
|
||||||
|
|
||||||
all_queue = set()
|
all_queue = set()
|
||||||
printarray1 = []
|
printarray_running = []
|
||||||
printarray2 = []
|
printarray_idle = []
|
||||||
printarray3 = []
|
printarray_notrunning = []
|
||||||
for queue, card in server.hgetall("queues").iteritems():
|
for queue, card in server.hgetall("queues").iteritems():
|
||||||
all_queue.add(queue)
|
all_queue.add(queue)
|
||||||
key = "MODULE_" + queue + "_"
|
key = "MODULE_" + queue + "_"
|
||||||
|
@ -621,9 +622,11 @@ def fetchQueueData():
|
||||||
value = server.get(key + str(moduleNum))
|
value = server.get(key + str(moduleNum))
|
||||||
complete_paste_path = server.get(key + str(moduleNum) + "_PATH")
|
complete_paste_path = server.get(key + str(moduleNum) + "_PATH")
|
||||||
COMPLETE_PASTE_PATH_PER_PID[moduleNum] = complete_paste_path
|
COMPLETE_PASTE_PATH_PER_PID[moduleNum] = complete_paste_path
|
||||||
|
|
||||||
if value is not None:
|
if value is not None:
|
||||||
timestamp, path = value.split(", ")
|
timestamp, path = value.split(", ")
|
||||||
if timestamp is not None and path is not None:
|
if timestamp is not None and path is not None:
|
||||||
|
# Queue health
|
||||||
startTime_readable = datetime.datetime.fromtimestamp(int(timestamp))
|
startTime_readable = datetime.datetime.fromtimestamp(int(timestamp))
|
||||||
processed_time_readable = str((datetime.datetime.now() - startTime_readable)).split('.')[0]
|
processed_time_readable = str((datetime.datetime.now() - startTime_readable)).split('.')[0]
|
||||||
if ((datetime.datetime.now() - startTime_readable).total_seconds()) > args.treshold:
|
if ((datetime.datetime.now() - startTime_readable).total_seconds()) > args.treshold:
|
||||||
|
@ -633,7 +636,9 @@ def fetchQueueData():
|
||||||
else:
|
else:
|
||||||
QUEUE_STATUS[moduleNum] = 0
|
QUEUE_STATUS[moduleNum] = 0
|
||||||
|
|
||||||
|
# Queue contain elements
|
||||||
if int(card) > 0:
|
if int(card) > 0:
|
||||||
|
# Queue need to be killed
|
||||||
if int((datetime.datetime.now() - startTime_readable).total_seconds()) > args.treshold:
|
if int((datetime.datetime.now() - startTime_readable).total_seconds()) > args.treshold:
|
||||||
#log = open(log_filename, 'a')
|
#log = open(log_filename, 'a')
|
||||||
#log.write(json.dumps([queue, card, str(startTime_readable), str(processed_time_readable), path]) + "\n")
|
#log.write(json.dumps([queue, card, str(startTime_readable), str(processed_time_readable), path]) + "\n")
|
||||||
|
@ -644,6 +649,7 @@ def fetchQueueData():
|
||||||
if args.autokill == 1 and last_kill_try > kill_retry_threshold :
|
if args.autokill == 1 and last_kill_try > kill_retry_threshold :
|
||||||
kill_module(queue, int(moduleNum))
|
kill_module(queue, int(moduleNum))
|
||||||
|
|
||||||
|
# Create CPU objects
|
||||||
try:
|
try:
|
||||||
cpu_percent = CPU_OBJECT_TABLE[int(moduleNum)].cpu_percent()
|
cpu_percent = CPU_OBJECT_TABLE[int(moduleNum)].cpu_percent()
|
||||||
CPU_TABLE[moduleNum].insert(1, cpu_percent)
|
CPU_TABLE[moduleNum].insert(1, cpu_percent)
|
||||||
|
@ -663,42 +669,45 @@ def fetchQueueData():
|
||||||
cpu_avg = cpu_percent
|
cpu_avg = cpu_percent
|
||||||
mem_percent = 0
|
mem_percent = 0
|
||||||
|
|
||||||
array_module_type.append( ([" <K> [ ]", str(queue), str(moduleNum), str(card), str(startTime_readable), str(processed_time_readable), str(path), "{0:.2f}".format(cpu_percent)+"%", "{0:.2f}".format(mem_percent)+"%", "{0:.2f}".format(cpu_avg)+"%"], moduleNum) )
|
array_module_type.append( ([" <K> [ ]", str(queue), str(moduleNum), str(card), str(startTime_readable),
|
||||||
|
str(processed_time_readable), str(path), "{0:.2f}".format(cpu_percent)+"%",
|
||||||
|
"{0:.2f}".format(mem_percent)+"%", "{0:.2f}".format(cpu_avg)+"%"], moduleNum) )
|
||||||
|
|
||||||
else:
|
else:
|
||||||
printarray2.append( ([" <K> ", str(queue), str(moduleNum), str(processed_time_readable), str(path)], moduleNum) )
|
printarray_idle.append( ([" <K> ", str(queue), str(moduleNum), str(processed_time_readable), str(path)], moduleNum) )
|
||||||
|
|
||||||
PID_NAME_DICO[int(moduleNum)] = str(queue)
|
PID_NAME_DICO[int(moduleNum)] = str(queue)
|
||||||
array_module_type.sort(lambda x,y: cmp(x[0][4], y[0][4]), reverse=True)
|
array_module_type.sort(lambda x,y: cmp(x[0][4], y[0][4]), reverse=True) #Sort by num of pastes
|
||||||
for e in array_module_type:
|
for e in array_module_type:
|
||||||
printarray1.append(e)
|
printarray_running.append(e)
|
||||||
|
|
||||||
for curr_queue in module_file_array:
|
for curr_queue in module_file_array:
|
||||||
if curr_queue not in all_queue:
|
if curr_queue not in all_queue: #Module not running by default
|
||||||
printarray3.append( ([" <S> ", curr_queue, "Not running by default"], curr_queue) )
|
printarray_notrunning.append( ([" <S> ", curr_queue, "Not running by default"], curr_queue) )
|
||||||
else:
|
else: #Module did not process anything yet
|
||||||
if len(list(server.smembers('MODULE_TYPE_'+curr_queue))) == 0:
|
if len(list(server.smembers('MODULE_TYPE_'+curr_queue))) == 0:
|
||||||
if curr_queue not in no_info_modules:
|
if curr_queue not in no_info_modules:
|
||||||
no_info_modules[curr_queue] = int(time.time())
|
no_info_modules[curr_queue] = int(time.time())
|
||||||
printarray3.append( ([" <S> ", curr_queue, "No data"], curr_queue) )
|
printarray_notrunning.append( ([" <S> ", curr_queue, "No data"], curr_queue) )
|
||||||
else:
|
else:
|
||||||
#If no info since long time, try to kill
|
#If no info since long time, try to kill
|
||||||
if args.autokill == 1:
|
if args.autokill == 1:
|
||||||
if int(time.time()) - no_info_modules[curr_queue] > args.treshold:
|
if int(time.time()) - no_info_modules[curr_queue] > args.treshold:
|
||||||
kill_module(curr_queue, None)
|
kill_module(curr_queue, None)
|
||||||
no_info_modules[curr_queue] = int(time.time())
|
no_info_modules[curr_queue] = int(time.time())
|
||||||
printarray3.append( ([" <S> ", curr_queue, "Stuck or idle, restarting in " + str(abs(args.treshold - (int(time.time()) - no_info_modules[curr_queue]))) + "s"], curr_queue) )
|
printarray_notrunning.append( ([" <S> ", curr_queue, "Stuck or idle, restarting in " + str(abs(args.treshold - (int(time.time()) - no_info_modules[curr_queue]))) + "s"], curr_queue) )
|
||||||
else:
|
else:
|
||||||
printarray3.append( ([" <S> ", curr_queue, "Stuck or idle, restarting disabled"], curr_queue) )
|
printarray_notrunning.append( ([" <S> ", curr_queue, "Stuck or idle, restarting disabled"], curr_queue) )
|
||||||
|
|
||||||
|
|
||||||
printarray1.sort(key=lambda x: x[0], reverse=False)
|
printarray_running.sort(key=lambda x: x[0], reverse=False)
|
||||||
printarray2.sort(key=lambda x: x[0], reverse=False)
|
printarray_idle.sort(key=lambda x: x[0], reverse=False)
|
||||||
|
|
||||||
printstring1 = format_string(printarray1, TABLES_PADDING["running"])
|
printstring_running = format_string(printarray_running, TABLES_PADDING["running"])
|
||||||
printstring2 = format_string(printarray2, TABLES_PADDING["idle"])
|
printstring_idle = format_string(printarray_idle, TABLES_PADDING["idle"])
|
||||||
printstring3 = format_string(printarray3, TABLES_PADDING["notRunning"])
|
printstring_notrunning = format_string(printarray_notrunning, TABLES_PADDING["notRunning"])
|
||||||
|
|
||||||
return {"running": printstring1, "idle": printstring2, "notRunning": printstring3}
|
return {"running": printstring_running, "idle": printstring_idle, "notRunning": printstring_notrunning}
|
||||||
|
|
||||||
# Format the input string with its related padding to have collumn like text in CListBox
|
# Format the input string with its related padding to have collumn like text in CListBox
|
||||||
def format_string(tab, padding_row):
|
def format_string(tab, padding_row):
|
||||||
|
@ -762,7 +771,6 @@ def demo(screen):
|
||||||
time.sleep(0.02) #time between screen refresh (For UI navigation, not data actualisation)
|
time.sleep(0.02) #time between screen refresh (For UI navigation, not data actualisation)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Show info concerning running modules and log suspected stucked modules. May be use to automatically kill and restart stucked one.')
|
parser = argparse.ArgumentParser(description='Show info concerning running modules and log suspected stucked modules. May be use to automatically kill and restart stucked one.')
|
||||||
|
|
Loading…
Reference in a new issue