Ejemplo n.º 1
0
         task[ds.task] = ds.name
     taskLog = TaskState.objects.get(id=request.POST.get('id'))
 except:
     return JsonResponse({
         "code": 500,
         "data": None,
         "msg": "任务不存在"
     })
 if op == 'view':
     try:
         data = dict()
         work = WorkerState.objects.get(id=taskLog.worker_id)
         data['id'] = taskLog.id
         data['task_id'] = taskLog.task_id
         data['worker'] = work.hostname
         if task.has_key(taskLog.name):
             data['name'] = task[taskLog.name]
         else:
             data['name'] = taskLog.name
         data['tstamp'] = taskLog.tstamp
         data['args'] = taskLog.args.replace('[u', '[')
         data['kwargs'] = taskLog.kwargs.replace('u\'', '\'')
         data['result'] = taskLog.result
         data['state'] = taskLog.state
         data['runtime'] = taskLog.runtime
         return JsonResponse({
             "code": 200,
             "data": data,
             "msg": "操作成功"
         })
     except Exception, ex:
Ejemplo n.º 2
0
 if op in ['view','delete'] and request.user.has_perm('djcelery.change_taskstate'):
     try:
         task = {}
         for ds in PeriodicTask.objects.all():
             task[ds.task] = ds.name
         taskLog = TaskState.objects.get(id=request.POST.get('id'))
     except:
         return JsonResponse({"code":500,"data":None,"msg":"任务不存在"})
     if op == 'view':
         try:
             data = dict()
             work = WorkerState.objects.get(id=taskLog.worker_id)
             data['id'] = taskLog.id
             data['task_id'] = taskLog.task_id
             data['worker'] = work.hostname
             if task.has_key(taskLog.name):data['name'] = task[taskLog.name]
             else:data['name'] = taskLog.name
             data['tstamp'] = taskLog.tstamp
             data['args'] = taskLog.args.replace('[u','[')
             data['kwargs'] = taskLog.kwargs.replace('u\'','\'')
             data['result'] = taskLog.result
             data['state'] = taskLog.state
             data['runtime'] = taskLog.runtime
             return  JsonResponse({"code":200,"data":data,"msg":"操作成功"})
         except Exception,e:
             return  JsonResponse({"code":500,"data":None,"msg":"日志查看失败。"})
     elif op == 'delete':
         try:
             taskLog.delete()
             return  JsonResponse({"code":200,"data":None,"msg":"删除成功"})
         except:
Ejemplo n.º 3
0
def task_view(request):
    if request.method == "GET":
        try:
            workList = WorkerState.objects.all()
            regTaskList = []
            for task in list(keys(cTasks)):
                if task.startswith('ConfManage.tasks.cron') or task.startswith(
                        'ConfManage.tasks.sched'):
                    regTaskList.append(task)
        except Exception as ex:
            logger.warn(msg="获取Celery Task失败: {ex}".format(ex=str(ex)))
            taskLog = []
        return render(
            request,
            'task/task_view.html',
            {
                "user": request.user,
                "regTaskList": regTaskList,
                "workList": workList
            },
        )
    elif request.method == "POST":
        op = request.POST.get('op')
        if op in ['view', 'delete', 'kill'
                  ] and request.user.has_perm('djcelery.change_taskstate'):
            try:
                task = {}
                for ds in PeriodicTask.objects.all():
                    task[ds.task] = ds.name
                taskLog = TaskState.objects.get(id=request.POST.get('id'))
            except:
                return JsonResponse({
                    "code": 500,
                    "data": None,
                    "msg": "任务不存在"
                })
            if op == 'view':
                try:
                    data = dict()
                    work = WorkerState.objects.get(id=taskLog.worker_id)
                    data['id'] = taskLog.id
                    data['task_id'] = taskLog.task_id
                    data['worker'] = work.hostname
                    if task.has_key(taskLog.name):
                        data['name'] = task[taskLog.name]
                    else:
                        data['name'] = taskLog.name
                    data['tstamp'] = taskLog.tstamp
                    data['args'] = taskLog.args.replace('[u', '[')
                    data['kwargs'] = taskLog.kwargs.replace('u\'', '\'')
                    data['result'] = taskLog.result
                    data['state'] = taskLog.state
                    data['runtime'] = taskLog.runtime
                    return JsonResponse({
                        "code": 200,
                        "data": data,
                        "msg": "操作成功"
                    })
                except Exception as ex:
                    logger.warn(msg="查看Celery Task运行日志失败: {ex}".format(
                        ex=str(ex)))
                    return JsonResponse({
                        "code": 500,
                        "data": None,
                        "msg": "日志查看失败。"
                    })
            elif op == 'delete':
                try:
                    taskLog.delete()
                    return JsonResponse({
                        "code": 200,
                        "data": None,
                        "msg": "删除成功"
                    })
                except Exception as ex:
                    return JsonResponse({
                        "code": 500,
                        "data": ex,
                        "msg": "日志删除失败"
                    })
            elif op == 'kill':
                try:
                    revoke(taskLog.task_id, terminate=True)
                    return JsonResponse({
                        "code": 200,
                        "data": None,
                        "msg": "任务终止成功"
                    })
                except Exception as ex:
                    logger.warn(msg="终止任务失败: {ex}".format(ex=str(ex)))
                    return JsonResponse({
                        "code": 500,
                        "data": ex,
                        "msg": "任务终止成功"
                    })
        else:
            return JsonResponse({
                "code": 500,
                "data": "终止任务失败: {ex}".format(ex=str(ex)),
                "msg": "不支持的操作或者您没有权限操作操作此项。"
            })
    else:
        return JsonResponse({"code": 500, "data": None, "msg": "不支持的HTTP操作"})
Ejemplo n.º 4
0
 if op in ['view','delete','kill'] and request.user.has_perm('djcelery.change_taskstate'):
     try:
         task = {}
         for ds in PeriodicTask.objects.all():
             task[ds.task] = ds.name
         taskLog = TaskState.objects.get(id=request.POST.get('id'))
     except:
         return JsonResponse({"code":500,"data":None,"msg":"任务不存在"})
     if op == 'view':
         try:
             data = dict()
             work = WorkerState.objects.get(id=taskLog.worker_id)
             data['id'] = taskLog.id
             data['task_id'] = taskLog.task_id
             data['worker'] = work.hostname
             if task.has_key(taskLog.name):data['name'] = task[taskLog.name]
             else:data['name'] = taskLog.name
             data['tstamp'] = taskLog.tstamp
             data['args'] = taskLog.args.replace('[u','[')
             data['kwargs'] = taskLog.kwargs.replace('u\'','\'')
             data['result'] = taskLog.result
             data['state'] = taskLog.state
             data['runtime'] = taskLog.runtime
             return  JsonResponse({"code":200,"data":data,"msg":"操作成功"})
         except Exception,ex:
             logger.warn(msg="查看Celery Task运行日志失败: {ex}".format(ex=str(ex)))
             return  JsonResponse({"code":500,"data":None,"msg":"日志查看失败。"})
     elif op == 'delete':
         try:
             taskLog.delete()
             return  JsonResponse({"code":200,"data":None,"msg":"删除成功"})