コード例 #1
0
ファイル: views.py プロジェクト: Betriebsrat/ecm
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)
コード例 #2
0
ファイル: views.py プロジェクト: vanderheyde/ecm
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)
コード例 #3
0
ファイル: common.py プロジェクト: Betriebsrat/ecm
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))
コード例 #4
0
ファイル: common.py プロジェクト: vanderheyde/ecm
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))
コード例 #5
0
ファイル: views.py プロジェクト: Betriebsrat/ecm
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)
コード例 #6
0
ファイル: views.py プロジェクト: vanderheyde/ecm
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)