Private
Public Access
1
0

a wrapper around the task queue

This commit is contained in:
Sander Roosendaal
2017-10-31 11:12:00 +01:00
parent 092d24d9b2
commit 8c31f5b778
3 changed files with 85 additions and 133 deletions

View File

@@ -188,7 +188,7 @@ def remove_asynctask(request,id):
request.session['async_tasks'] = newtasks
def get_job_result(jobid):
if settings.DEBUG:
if settings.EBUG:
result = celery_result.AsyncResult(jobid).result
else:
running_job_ids = rq_registry.get_job_ids()
@@ -476,7 +476,7 @@ def splitstdata(lijst):
from utils import (
geo_distance,serialize_list,deserialize_list,uniqify,
str2bool,range_to_color_hex,absolute
str2bool,range_to_color_hex,absolute,myqueue
)
import datautils
@@ -1298,25 +1298,21 @@ def workout_tcxemail_view(request,id=0):
except Workout.DoesNotExist:
raise Http404("Workout doesn't exist")
if (checkworkoutuser(request.user,w)):
try:
tcxfile,tcxmessg = stravastuff.createstravaworkoutdata(w,dozip=False)
if tcxfile == 0:
message = "Something went wrong (TCX export) "+tcxmessg
messages.error(request,message)
url = reverse(workout_export_view,
kwargs = {
'id':str(w.id),
})
return HttpResponseRedirect(url)
if settings.DEBUG and tcxfile:
res = handle_sendemailtcx.delay(r.user.first_name,
r.user.last_name,
r.user.email,tcxfile)
elif tcxfile:
res = queuehigh.enqueue(handle_sendemailtcx,r.user.first_name,
r.user.last_name,
r.user.email,tcxfile)
tcxfile,tcxmessg = stravastuff.createstravaworkoutdata(w,dozip=False)
if tcxfile == 0:
message = "Something went wrong (TCX export) "+tcxmessg
messages.error(request,message)
url = reverse(workout_export_view,
kwargs = {
'id':str(w.id),
})
return HttpResponseRedirect(url)
if tcxfile:
res = myqueue(queuehigh,handle_sendemailtcx,
r.user.first_name,
r.user.last_name,
r.user.email,
tcxfile)
successmessage = "The TCX file was sent to you per email"
messages.info(request,successmessage)
@@ -1324,19 +1320,6 @@ def workout_tcxemail_view(request,id=0):
kwargs = {
'id':str(w.id),
})
except:
successmessage = ""
message = "Something went wrong (TCX export) "+str(sys.exc_info()[0])
with open("media/c2errors.log","a") as errorlog:
errorstring = str(sys.exc_info()[0])
timestr = strftime("%Y%m%d-%H%M%S")
errorlog.write(timestr+errorstring+"\r\n")
messages.error(request,message)
url = reverse(workout_export_view,
kwargs = {
'id':str(w.id),
})
response = HttpResponseRedirect(url)
@@ -1366,15 +1349,11 @@ def workout_gpxemail_view(request,id=0):
row = rdata(filename)
gpxfilename = filename[:-4]+'.gpx'
row.exporttogpx(gpxfilename)
if settings.DEBUG:
res = handle_sendemailtcx.delay(r.user.first_name,
r.user.last_name,
r.user.email,gpxfilename)
else:
res = queuehigh.enqueue(handle_sendemailtcx,r.user.first_name,
r.user.last_name,
r.user.email,gpxfilename)
res = myqueue(queuehigh,handle_sendemailtcx,
r.user.first_name,
r.user.last_name,
r.user.email,gpxfilename)
successmessage = "The GPX file was sent to you per email"
messages.info(request,successmessage)
@@ -1407,15 +1386,9 @@ def workout_csvemail_view(request,id=0):
raise Http404("Workout doesn't exist")
if (checkworkoutuser(request.user,w)):
csvfile = w.csvfilename
if settings.DEBUG:
res = handle_sendemailcsv.delay(r.user.first_name,
r.user.last_name,
r.user.email,csvfile)
else:
res = queuehigh.enqueue(handle_sendemailcsv,r.user.first_name,
r.user.last_name,
r.user.email,csvfile)
res = myqueue(queuehigh,handle_sendemailcsv,r.user.first_name,
r.user.last_name,
r.user.email,csvfile)
successmessage = "The CSV file was sent to you per email"
messages.info(request,successmessage)
@@ -1447,19 +1420,12 @@ def workout_csvtoadmin_view(request,id=0):
raise Http404("Workout doesn't exist")
csvfile = w.csvfilename
if settings.DEBUG:
res = handle_sendemailcsv.delay(
'Sander',
'Roosendaal',
'roosendaalsander@gmail.com',csvfile)
else:
res = queuehigh.enqueue(
handle_sendemailcsv,
'Sander',
'Roosendaal',
'roosendaalsander@gmail.com',
csvfile)
res = myqueue(queuehigh,
handle_sendemailcsv,
'Sander',
'Roosendaal',
'roosendaalsander@gmail.com',
csvfile)
successmessage = "The CSV file was sent to the site admin per email"
messages.info(request,successmessage)
@@ -2579,11 +2545,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
@login_required()
def workout_test_task_view(request,id=0):
row = Workout.objects.get(id=id)
if settings.DEBUG:
res = addcomment2.delay(request.user.id,row.id)
else:
#res = queuehigh.enqueue(addcomment2,request.user.id,row.id)
res = queuehigh.enqueue(addcomment2,request.user.id,row.id)
res = myqueue(queuehigh,addcomment2,request.user.id,row.id)
url = reverse(workout_edit_view,
@@ -5662,19 +5624,13 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""):
first_name = u.first_name
last_name = u.last_name
emailaddress = u.email
if settings.DEBUG:
job = handle_otwsetpower.delay(f1,boattype,weightvalue,
first_name,last_name,
emailaddress,id,debug=True,
ps=[r.p0,r.p1,r.p2,r.p3],
ratio=r.cpratio)
else:
job = queuelow.enqueue(handle_otwsetpower,f1,boattype,
weightvalue,
first_name,last_name,emailaddress,id,
ps=[r.p0,r.p1,r.p2,r.p3],
ratio=r.cpratio)
job = myqueue(queuelow,
handle_otwsetpower,f1,boattype,
weightvalue,
first_name,last_name,emailaddress,id,
ps=[r.p0,r.p1,r.p2,r.p3],
ratio=r.cpratio)
try:
request.session['async_tasks'] += [(job.id,'otwsetpower')]
@@ -6963,49 +6919,30 @@ def workout_comment_view(request,id=0):
)
if request.user != r.user:
a_messages.info(r.user,message)
if settings.DEBUG and request.user != r.user:
res = handle_sendemailnewcomment.delay(r.user.first_name,
r.user.last_name,
r.user.email,
request.user.first_name,
request.user.last_name,
comment,w.name,
w.id)
elif request.user != r.user:
res = queuehigh.enqueue(handle_sendemailnewcomment,r.user.first_name,
r.user.last_name,
r.user.email,
request.user.first_name,
request.user.last_name,
comment,w.name,w.id)
res = myqueue(queuehigh,
handle_sendemailnewcomment,r.user.first_name,
r.user.last_name,
r.user.email,
request.user.first_name,
request.user.last_name,
comment,w.name,w.id)
commenters = {oc.user for oc in comments if oc.notification}
for u in commenters:
a_messages.info(u,message)
if settings.DEBUG and u != request.user and u != r.user:
res = handle_sendemailnewresponse.delay(u.first_name,
u.last_name,
u.email,
request.user.first_name,
request.user.last_name,
comment,
w.name,
w.id,
c.id)
elif u != request.user and u != r.user:
res = queuelow.enqueue(handle_sendemailnewresponse,
u.first_name,
u.last_name,
u.email,
request.user.first_name,
request.user.last_name,
comment,
w.name,
w.id,
c.id)
if u != request.user and u != r.user:
res = myqueue(queuelow,
handle_sendemailnewresponse,
u.first_name,
u.last_name,
u.email,
request.user.first_name,
request.user.last_name,
comment,
w.name,
w.id,
c.id)
url = reverse(workout_comment_view,kwargs = {
'id':id})
@@ -9654,10 +9591,7 @@ def rower_calcdps_view(request):
r = getrower(request.user)
ws = [(w.id,w.csvfilename) for w in Workout.objects.filter(user=r)]
if settings.DEBUG:
res = handle_updatedps.delay(r.user.email,ws,debug=True)
else:
queue.enqueue(handle_updatedps,r.user.email,ws,debug=False)
res = myqueue(queue,handle_updatedps,r.user.email,ws,debug=False)
messages.info(request,"Your workouts are being updated in the background. You will receive email when this is done.")