Преглед изворни кода

[minor] added option to show failed jobs in background_jobs

version-14
Rushabh Mehta пре 9 година
родитељ
комит
e6a35946ec
4 измењених фајлова са 57 додато и 17 уклоњено
  1. +23
    -10
      frappe/core/page/background_jobs/background_jobs.html
  2. +10
    -2
      frappe/core/page/background_jobs/background_jobs.js
  3. +12
    -5
      frappe/core/page/background_jobs/background_jobs.py
  4. +12
    -0
      frappe/core/page/background_jobs/background_jobs_outer.html

+ 23
- 10
frappe/core/page/background_jobs/background_jobs.html Прегледај датотеку

@@ -1,26 +1,39 @@
<div style="padding: 20px;" class="list-jobs">
<div class="list-jobs">
{% if jobs.length %}
<table class="table table-bordered">
<table class="table table-bordered" style="table-layout: fixed;">
<thead>
<tr>
<th style="width: 30%">Queue / Worker</th>
<th style="width: 20%">Queue / Worker</th>
<th>Job</th>
<th style="width: 20%">Created</th>
<th style="width: 15%">Created</th>
</tr>
</thead>
<tbody>
{% for j in jobs %}
<tr>
<td>{{ j.queue }}</td>
<td><span class="indicator {{ j.color }}" title="{{ j.status }}">
{{ frappe.utils.encode_tags(j.job_name) }}</span></td>
<td>{{ j.creation }}</td>
<td><span class="indicator {{ j.color }}" title="{{ j.status }}">{{ j.queue }}</span></td>
<td style="overflow: auto;">
<div>
{{ frappe.utils.encode_tags(j.job_name) }}
</div>
{% if j.exc_info %}
<div>
<pre>{{ frappe.utils.encode_tags(j.exc_info) }}</pre>
</div>
{% endif %}
</td>
<td class="small">{{ j.creation }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<p>
<span class="indicator green" style="margin-right: 20px;">Started</span>
<span class="indicator orange" style="margin-right: 20px;">Queued</span>
<span class="indicator red">Failed</span>
</p>
{% else %}
<p class="text-muted">No pending or failed jobs for this site</p>
<p class="text-muted">No pending or current jobs for this site</p>
{% endif %}
<p class="text-muted">Last refreshed {{ frappe.datetime.now_datetime() }}</p>
<p class="text-muted" style="margin-top: 30px;">Last refreshed {{ frappe.datetime.now_datetime() }}</p>
</div>

+ 10
- 2
frappe/core/page/background_jobs/background_jobs.js Прегледај датотеку

@@ -1,9 +1,14 @@
frappe.pages['background_jobs'].on_page_load = function(wrapper) {
frappe.pages.background_jobs.page = frappe.ui.make_app_page({
var page = frappe.ui.make_app_page({
parent: wrapper,
title: 'Background Jobs',
single_column: true
});

$(frappe.render_template('background_jobs_outer')).appendTo(page.body);
page.content = $(page.body).find('.table-area');

frappe.pages.background_jobs.page = page;
}

frappe.pages['background_jobs'].on_page_show = function(wrapper) {
@@ -18,10 +23,13 @@ frappe.pages.background_jobs.refresh_jobs = function() {
page.called = true;
frappe.call({
method: 'frappe.core.page.background_jobs.background_jobs.get_info',
args: {
show_failed: page.body.find('.show-failed').prop('checked') ? 1 : 0
},
callback: function(r) {
page.called = false;
page.body.find('.list-jobs').remove();
$(frappe.render_template('background_jobs', {jobs:r.message || []})).appendTo(page.body);
$(frappe.render_template('background_jobs', {jobs:r.message || []})).appendTo(page.content);

if(frappe.get_route()[0]==='background_jobs') {
frappe.background_jobs_timeout = setTimeout(frappe.pages.background_jobs.refresh_jobs, 2000);


+ 12
- 5
frappe/core/page/background_jobs/background_jobs.py Прегледај датотеку

@@ -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

+ 12
- 0
frappe/core/page/background_jobs/background_jobs_outer.html Прегледај датотеку

@@ -0,0 +1,12 @@
<div style="padding: 20px;">
<p>
<div class="checkbox">
<label>
<input type="checkbox" class="show-failed"> {{ __("Show failed jobs") }}
</label>
</div>
</p>
<div class="table-area">

</div>
</div>

Loading…
Откажи
Сачувај