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)
评论列表
文章目录