|
|
@@ -6,7 +6,7 @@ import frappe |
|
|
|
|
|
|
|
from rq import Queue, Worker |
|
|
|
from frappe.utils.background_jobs import get_redis_conn |
|
|
|
from frappe.utils import format_datetime |
|
|
|
from frappe.utils import format_datetime, cint |
|
|
|
|
|
|
|
colors = { |
|
|
|
'queued': 'orange', |
|
|
@@ -15,14 +15,14 @@ colors = { |
|
|
|
} |
|
|
|
|
|
|
|
@frappe.whitelist() |
|
|
|
def get_info(): |
|
|
|
def get_info(show_failed=False): |
|
|
|
conn = get_redis_conn() |
|
|
|
queues = Queue.all(conn) |
|
|
|
workers = Worker.all(conn) |
|
|
|
jobs = [] |
|
|
|
|
|
|
|
def add_job(j, name): |
|
|
|
if j.kwargs.get('site')==frappe.local.site: |
|
|
|
if j.kwargs.get('site')==frappe.local.site or True: |
|
|
|
jobs.append({ |
|
|
|
'job_name': j.kwargs.get('kwargs', {}).get('playbook_method') \ |
|
|
|
or str(j.kwargs.get('job_name')), |
|
|
@@ -30,6 +30,8 @@ def get_info(): |
|
|
|
'creation': format_datetime(j.created_at), |
|
|
|
'color': colors[j.status] |
|
|
|
}) |
|
|
|
if j.exc_info: |
|
|
|
jobs[-1]['exc_info'] = j.exc_info |
|
|
|
|
|
|
|
for w in workers: |
|
|
|
j = w.get_current_job() |
|
|
@@ -38,7 +40,12 @@ def get_info(): |
|
|
|
|
|
|
|
for q in queues: |
|
|
|
if q.name != 'failed': |
|
|
|
for j in q.get_jobs(): |
|
|
|
add_job(j, q.name) |
|
|
|
for j in q.get_jobs(): add_job(j, q.name) |
|
|
|
|
|
|
|
if cint(show_failed): |
|
|
|
for q in queues: |
|
|
|
if q.name == 'failed': |
|
|
|
for j in q.get_jobs()[:10]: add_job(j, q.name) |
|
|
|
|
|
|
|
|
|
|
|
return jobs |