def progress(request): """ Check status of task. """ if 'delete' in request.GET: models.MachineCache.objects.all().delete() models.InstituteCache.objects.all().delete() models.PersonCache.objects.all().delete() models.ProjectCache.objects.all().delete() return render_to_response('main.html', {'content': 'Deleted'}, context_instance=RequestContext(request)) if request.method == 'POST': if 'task_id' in request.POST: result = Task.AsyncResult(request.POST['task_id']) if result.failed(): value = { 'info': {}, 'ready': result.ready(), } else: value = { 'info': result.info, 'ready': result.ready(), } return HttpResponse(json.dumps(value), content_type="application/json") return None
def inner(request, *args): lock_id = '%s-%s-built-%s' % (datetime.date.today(), func.__name__, ",".join([str(a) for a in args])) if cache.add(lock_id, 'true', LOCK_EXPIRE): result = func(request, *args) cache.set(lock_id, result.task_id) else: task_id = cache.get(lock_id) if not task_id: return None cache.set(lock_id, "") result = Task.AsyncResult(task_id) if result.ready(): result.forget() return None return result