cli.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:fulmar 作者: tylderen 项目源码 文件源码
def start_project(ctx, project):
    """Start a project."""
    from fulmar.message_queue import newtask_queue
    from fulmar.scheduler.projectdb import projectdb

    if not os.path.exists(project):
        raise IOError('No such file or directory: "%s".' % project)

    if not os.path.isfile(project):
        raise IOError('Is not a Python file: "%s".' % project)

    if not project.endswith('.py'):
        raise TypeError('Not a standard Python file: "%s". Please make sure it is a Python file which ends with ".py".' % project)

    project_name = project.split('/')[-1].strip(' .py')
    project_data = projectdb.get(project_name)

    if not project_data:
        ctx.invoke(update_project, project_file=project)
        project_data = projectdb.get(project_name)

    if project_data.get('is_stopped'):
        project_data.update({'is_stopped': False})
        projectdb.set(project_name, project_data)

    newtask = {
        "project_name": project_name,
        'project_id': project_data.get('project_id'),
        "taskid": project_name + ': on_start',
        "url": 'first_task: ' + project_name,
        "process": {
            "callback": "on_start",
        },
        "schedule": {
            "is_cron": True
        },
    }
    newtask_queue.put(newtask)

    click.echo('Successfully start project: "%s".' % project_name)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号