各位彦祖,想在页面实时显示当前执行程序的日志,所以需要在运行程序时就获取到数据库这条记录的 id ,但执行的是 celery 异步 task ,没办法直接拿到 id ,只能等异步完成后才能拿到,这个如何解决。 (插库操作不能放到异步程序外,因为还有很多参数是在这里获取的)求彦祖能给个解决方案
@shared_task(base=mytask,bind=True) def data_run(self,caseList,project,env,username,type=None,ids=None): . . . #插库记录 run_record = runRecord.objects.create(user_name=username, casepath=caselists[1], env=env,uuid=task_id, cases=','.join(caselists[0]), project=project,status=1, type=0, vaild=1, report=report, log=LOG_FILE_PATH) #获取这条库记录 id id = model_to_dict(run_record)['id'] #执行程序 sk = runner.run(caseList=caseList,report=report,project=project,env=env,refail=refail) 