Qlik Sense üzeriden, python kullanarak belirli bir süreden fazladır çalışan taskları HTML tablo olarak alabiliriz.
# -*- coding: utf-8 -*- import qsAPI from datetime import datetime, timedelta import sys import io from datetime import datetime from tabulate import tabulate sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8') def bordered_html_table(html_data,headers): add_border_to_html = "<table border=\"1\">" html_table = tabulate(html_data, headers, tablefmt="html") html_table = html_table.replace("<table>", add_border_to_html) return html_table def connectQliksense(proxy, domain, user, passwd): qlik_conn = qsAPI.QRS(proxy=proxy, user=(domain, user, passwd), verbosity='CRITICAL') return qlik_conn def convert_qmc_status(status): if status == 2: status_string = "Started" elif status == 3: status_string = "Queued" elif status == 7: status_string = "Success" elif status == 8: status_string = "Failed" else: status_string = status return status_string # take third element for sort def sort_list(elem): return elem[4] # qliksense connection variables proxy_qliksense_tr = "PROXY_MACHINE" domain_qliksense_tr = "DOMAIN" user_qliksense_tr = "USERNAME" passwd_qliksense_tr = "PASSWORD" # connect to qliksense qliksense_conn = connectQliksense(proxy_qliksense_tr, domain_qliksense_tr, user_qliksense_tr, passwd_qliksense_tr) # get app list tasks = qliksense_conn.TaskGet() task_html = list() for task in tasks: task_list = list() # print(task) start_time = datetime.strptime(task['operational']['lastExecutionResult']['startTime'][:-5], '%Y-%m-%dT%H:%M:%S') + timedelta(hours=3) task_run_time = datetime.now() - start_time # check if task is running and bigger than specified time if task['operational']['lastExecutionResult']['status'] == 2 and task_run_time > timedelta(minutes=30): task_list.append(task['name']) if "app" in task: task_list.append(task['app']['stream']['name']) else: task_list.append("No Stream") task_list.append(task['operational']['lastExecutionResult']['executingNodeName']) task_list.append(convert_qmc_status(task['operational']['lastExecutionResult']['status'])) task_list.append(start_time) task_list.append(task['operational']['lastExecutionResult']['stopTime']) task_list.append(task_run_time) task_html.append(task_list) if len(task_html) == 0: print(None) else: # create headers for list headers = ["Task Name", "Stream Name", "Executing Node Name", "Status", "Start Time", "Task Run Time"] # sort list task_html.sort(reverse=True, key=sort_list) # create html table for list table = bordered_html_table(task_html, headers) print(table)