我有一个django应用程序的问题,它通过celery任务和redis执行存储过程(oracle数据库)。该应用程序在Linux服务器上运行,但是这个下来然后我使用python manage.py runserver解除了aplication,但我不知道如何处理celery用来运行调用存储的任务的部分程序
这是一个视图
@csrf_exempt
@login_required(login_url='/login/')
def DynamicView(request):
idc = request.GET.get('idc')
idpl = request.GET.get('idpl')
if request.method == 'POST':
usuario = request.user
rpost = request.POST
form = DynamicForm(idpl,idc, request.POST)
idc= request.POST.get('idcontrol')
idpl= request.POST.get('idpl')
if form.is_valid():
pl_ejecutar = BuildPl(idpl,idc,usuario,rpost)
mensaje = pl_ejecutar
dynamicExec.delay(pl_ejecutar,idc,idpl)
nom_control = BuscarControl(idc)
nom_pl = BuscarControlPl(idpl)
usu = User.objects.get(username=usuario)
nombre_usu = usu.username
accion = 'Se ha ejecutado el Pl: ' \
+ nom_pl + '. Para el Control: ' \
+ nom_control + '. Por: ' + nombre_usu
RegistroAcciones(usuario,accion)
return HttpResponseRedirect('/monitor/')
这是一项任务
@task(queue='ds')
def dynamicExec(pl,pidc,pidpl):
runpl = EjecutarPl()
spe = runpl.ejecuta(pl,pidc,pidpl)
return none
这里是调用存储过程的模型
class EjecutarPl():
def ejecuta(self, plv,idcv,idplv):
cursor = connection.cursor()
query = "begin cbs_django.ejecutar_pl_v2(:ppl,:pidc,:pidpl); end; "
param = {"ppl":plv,"pidc":idcv,"pidpl":idplv}
spexec = cursor.execute(query,param)
cursor.close()
return spexec
我没有使用芹菜和redis的经验,所以如果有人能帮助我,我会很感激。