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)
Example #2
0
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)
Example #3
0
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')