2013-03-06 6 views
0

Сейчас я использую сельдерей для обработки моего сценария развертывания (ткани). Поэтому мне нужно сохранить каждый журнал развертывания проекта в базе данных, а затем я могу проверить, работает ли развертывание отлично или нет. Однако я до сих пор не нашел правильный способ сохранить журнал каждой задачи и немного запутать использование регистратора сельдерей. Я использую сельдерей 2.5.1Получить сельдерей каждый журнал задач

views.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) 

tasks.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 = '[email protected]' 
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']) 

ответ

0
class LogEntry(models.Model): 
    timestamp = models.DateTimeField(auto_now_add=True) 
    severity = models.CharField(blank=False, max_length=10) 
    message = models.TextField(blank=False) 

@task 
def deploy(deploy_settings): 
    log = LogEntry(severity="INFO", message="Deploying....") 
    log.save() 
    fabfile.deploy_settings = deploy_settings 
    fabfile.run_all() #run the deployment script, I need to save all the output message 

    return True 
+0

окей спасибо за код , Но если я использую этот код, я могу сохранить поле сообщения только в «Развертывание ...», не так ли? Я хочу сохранить все результаты сельдерея из заданий на ткани (например, клонирование из git, создание db и т. Д.) – Agus

+0

Могу ли я спросить вас, как вы реализуете развертывание (deploy_settings) в представлениях? вы можете размещать свои коды – catherine

+0

Я обновил код – Agus