Skip to content

Commit 8923d11

Browse files
author
Matt George
committed
added delete_all and retry_all options to the resweb
server. Right now retry will actually only retry the first 5000 options. Retry can be time consuming on large failed queues.
1 parent 1d454c1 commit 8923d11

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

resweb/server.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
Delayed,
1616
DelayedTimestamp
1717
)
18+
from base64 import b64decode
1819

1920
HOST = ResQ("localhost:6379")
2021
MY_ROOT = os.path.join(os.path.dirname(__file__), 'media')
@@ -45,8 +46,6 @@ def failed(request):
4546

4647
@post('/failed/retry/')
4748
def failed_retry(request):
48-
from base64 import b64decode
49-
from pyres import failure
5049
try:
5150
import json
5251
except ImportError:
@@ -59,8 +58,6 @@ def failed_retry(request):
5958

6059
@post('/failed/delete/')
6160
def failed_delete(request):
62-
from base64 import b64decode
63-
from pyres import failure
6461
try:
6562
import json
6663
except ImportError:
@@ -70,6 +67,22 @@ def failed_delete(request):
7067
failure.delete(HOST, job)
7168
raise Redirect('/failed/')
7269

70+
@get('/failed/delete_all/')
71+
def delete_all_failed(request):
72+
#move resque:failed to resque:failed-staging
73+
HOST.redis.rename('resque:failed','resque:failed-staging')
74+
HOST.redis.delete('resque:failed-staging')
75+
raise Redirect('/failed/')
76+
77+
78+
@get('/failed/retry_all')
79+
def retry_failed(request, number=5000):
80+
failures = failure.all(HOST, 0, number)
81+
for f in failures:
82+
j = b64decode(f['redis_value'])
83+
failure.retry(HOST, f['queue'], j)
84+
raise Redirect('/failed/')
85+
7386
@get('/workers/(?P<worker_id>\w.+)/')
7487
def worker(request, worker_id):
7588
return str(Worker(HOST, worker_id).render())

resweb/templates/failed.mustache

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,20 @@ $(document).ready(function(){
66
return false;
77
});
88
});
9+
function retry_all(){
10+
if(confirm('Are you sure you want to retry all?')){
11+
window.location.href = '/failed/retry_all/';
12+
}
13+
}
14+
function delete_all(){
15+
if(confirm('Are you sure you want to delete all?')){
16+
window.location.href = '/failed/delete_all';
17+
}
18+
19+
}
920
</script>
1021
<h1>Failed Jobs</h1>
22+
<div class="buttons"><button onclick='retry_all()'>retry all</button> <button onclick='delete_all()'>delete all</button></div>
1123
<p class='sub'>Showing {{start}} to {{end}} of <b>{{size}}</b> jobs</p>
1224
<ul class='pagination'>
1325
{{#pagination}}

0 commit comments

Comments
 (0)