現在、展開スクリプト(ファブリック)を処理するためにセロリを使用しています。そのため、すべてのプロジェクトの展開ログをデータベースに保存する必要があります。後で、展開が完全に実行されたかどうかを確認できます。しかし、私はまだ各タスク ログを保存する正しい方法を見つけられておらず、セロリ ロガーの使用について少し混乱しています。セロリ2.5.1を使用しています
ビュー.py
def deploy(request, project_slug):
project = get_object_or_404(Project, slug=project_slug)
deploy_settings = simplejson.loads(project.result) #settings in json format
tasks.deploy.delay(deploy_settings)
タスク.py
from celery.task import task
from deployer import fabfile
@task
def deploy(deploy_settings):
logger = deploy.get_logger()
fabfile.deploy_settings = deploy_settings
fabfile.clone() #run the deployment script, I need to save all the output message
return True
fabfile.py
env.host_string = 'example@example.com'
env.password = 'example'
deploy_settings = {}
def clone():
with cd(deploy_settings['PATH_TO_APPS']):
run('mkdir %s' % deploy_settings['PROJECT_SLUG'])
run('git clone %s %s' % (deploy_settings['URL'], deploy_settings['PROJECT_SLUG']))
with cd('%s/example/' % deploy_settings['PROJECT_SLUG']):
run('git checkout %s' % deploy_settings['BRANCH'])