执行过程持续返回
简要
1. 挑用插件:
django-celery jenkins
2. 基于Python版本:
Python2.7
3. 基于django版本:
django1.8.18
主要问题:
需要把jenkins代码发布的执行过程持续输出,后台执行完成后消息数据返回到前台。
解决方案:
使用django-celery的异步执行操作,把异步执行的数据返回到rabbitmq,从rabbitmq读取数据写入数据库,页面中返回数据库的信息,页面使用定时器,当返回结果不为失败或者成功时,5秒刷新页面,读取最新的操作内容。
具体代码如下:
1. django setting.py配置:
djcelery.setup_loader()
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
BROKER_POOL_LIMIT = 0
#CELERY_TASK_SERIALIZER = 'json' (由于设置Json以后输入也必须要使用Json格式,暂时未启用)
#CELERY_RESULT_SERIALIZER = 'json'
CELERY_ENABLE_UTC = True
CELERY_RESULT_BACKEND= 'amqp'
INSTALLED_APPS = (
'djcelery',
'app',
)
2. django celery.py配置:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
from app.backend.tasks import *
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'CMDB.settings')
app = Celery('CMDB')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
3. app view配置:
def job_release(request):
if request.method == 'GET'