def task_logic(**kwargs): if kwargs.get('name') is '': return '任务名称不可为空' elif kwargs.get('project') is '': return '请选择一个项目' elif kwargs.get('crontab_time') is '': return '定时配置不可为空' elif kwargs.get('module') is '': kwargs.pop('module') try: crontab_time = kwargs.pop('crontab_time').split(' ') if len(crontab_time) > 5: return '定时配置参数格式不正确' crontab = { 'day_of_week': crontab_time[-1], 'month_of_year': crontab_time[3], # 月份 'day_of_month': crontab_time[2], # 日期 'hour': crontab_time[1], # 小时 'minute': crontab_time[0], # 分钟 } except Exception: return '定时配置参数格式不正确' if PeriodicTask.objects.filter(name__exact=kwargs.get('name')).count() > 0: return '任务名称重复,请重新命名' desc = " ".join(str(i) for i in crontab_time) name = kwargs.pop('name') if 'module' in kwargs.keys(): return create_task(name, 'ApiManager.tasks.module_hrun', kwargs, crontab, desc) else: return create_task(name, 'ApiManager.tasks.project_hrun', kwargs, crontab, desc)
def task_logic(**kwargs): """ 定时任务逻辑处理 :param kwargs: dict: 定时任务数据 :return: """ if 'task' in kwargs.keys(): if kwargs.get('task').get('type') == 'module': return load_modules(**kwargs.pop('task')) else: return load_testsuites(**kwargs.pop('task')) if kwargs.get('name') is '': return '任务名称不可为空' elif kwargs.get('project') is '': return '请选择一个项目' elif kwargs.get('crontab_time') is '': return '定时配置不可为空' elif not kwargs.get('module'): kwargs.pop('module') try: crontab_time = kwargs.pop('crontab_time').split(' ') if len(crontab_time) > 5: return '定时配置参数格式不正确' crontab = { 'day_of_week': crontab_time[-1], 'month_of_year': crontab_time[3], # 月份 'day_of_month': crontab_time[2], # 日期 'hour': crontab_time[1], # 小时 'minute': crontab_time[0], # 分钟 } except Exception: return '定时配置参数格式不正确' if PeriodicTask.objects.filter(name__exact=kwargs.get('name')).count() > 0: return '任务名称重复,请重新命名' desc = " ".join(str(i) for i in crontab_time) name = kwargs.get('name') mode = kwargs.pop('mode') if 'module' in kwargs.keys(): kwargs.pop('project') if mode == '1': return create_task(name, 'ApiManager.tasks.module_hrun', kwargs, crontab, desc) else: kwargs['suite'] = kwargs.pop('module') return create_task(name, 'ApiManager.tasks.suite_hrun', kwargs, crontab, desc) else: return create_task(name, 'ApiManager.tasks.project_hrun', kwargs, crontab, desc)
def test_tasks(request, id): create_task( str(id), 'ApiManager.tasks.add', { "x": 1, "y": 2 }, { 'day of week': 0, 'month_of_year': '*', # 月份 'day_of_month': '*', # 日期 'hour': '*', # 小时 'minute': '*', # 分钟 }) delete_task('6') return HttpResponse('ok')