def launch_task(request, task_id): try: task = get_object_or_404(ScheduledTask, pk=int(task_id)) except ValueError: raise Http404() if task.is_running or task.is_scheduled: code = http.NOT_MODIFIED message = 'Task "%s" is already running.' % task.function elif not task.is_active: code = http.NOT_MODIFIED message = 'Task "%s" is disabled.' % task.function else: code = http.ACCEPTED message = '' task.is_scheduled = True task.save() process.run_async(task) if message: LOG.warning(message) next_page = request.GET.get("next", None) if next_page is not None: # we let the task the time to start before redirecting # so the "next" web page can display that it is actually running time.sleep(0.2) return redirect(next_page) else: return HttpResponse(message, status=code)
def edit_apikey(request): if request.method == 'POST': form = DirectorApiKeyForm(request.POST) if form.is_valid(): keyID = form.cleaned_data.get('keyID') vCode = form.cleaned_data.get('vCode') characterID = form.cleaned_data.get('characterID') api.set_api(keyID, vCode, characterID) tasks_to_execute = ScheduledTask.objects.filter(is_active=True).order_by("-priority") tasks_to_execute.update(is_scheduled=True) process.run_async(*tasks_to_execute) return redirect('/scheduler/tasks/') else: try: keyID = Setting.get('common_api_keyID') vCode = Setting.get('common_api_vCode') except Setting.DoesNotExist: keyID = 0 vCode = '' form = DirectorApiKeyForm(initial={ 'keyID': keyID, 'vCode': vCode, }) return render_to_response('ecm/common/edit_director_api.html', {'form': form}, Ctx(request))
def edit_apikey(request): if request.method == 'POST': form = DirectorApiKeyForm(request.POST) if form.is_valid(): keyID = form.cleaned_data.get('keyID') vCode = form.cleaned_data.get('vCode') characterID = form.cleaned_data.get('characterID') api.set_api(keyID, vCode, characterID) tasks_to_execute = ScheduledTask.objects.filter( is_active=True).order_by("-priority") tasks_to_execute.update(is_scheduled=True) process.run_async(*tasks_to_execute) return redirect('/scheduler/tasks/') else: try: keyID = Setting.get('common_api_keyID') vCode = Setting.get('common_api_vCode') except Setting.DoesNotExist: keyID = 0 vCode = '' form = DirectorApiKeyForm(initial={ 'keyID': keyID, 'vCode': vCode, }) return render_to_response('ecm/common/edit_director_api.html', {'form': form}, Ctx(request))
def trigger_scheduler(request): now = timezone.now() tasks_to_execute = ScheduledTask.objects.filter(is_active=True, is_running=False, is_scheduled=False, next_execution__lt=now).order_by("-priority") if tasks_to_execute: tasks_list = list(tasks_to_execute) tasks_to_execute.update(is_scheduled=True) process.run_async(*tasks_list) return HttpResponse(status=http.ACCEPTED) else: return HttpResponse(status=http.NOT_MODIFIED)
def trigger_scheduler(request): now = timezone.now() tasks_to_execute = ScheduledTask.objects.filter( is_active=True, is_running=False, is_scheduled=False, next_execution__lt=now).order_by("-priority") if tasks_to_execute: tasks_list = list(tasks_to_execute) tasks_to_execute.update(is_scheduled=True) process.run_async(*tasks_list) return HttpResponse(status=http.ACCEPTED) else: return HttpResponse(status=http.NOT_MODIFIED)