我正在尝试执行一个耗时的后端作业,由前端调用执行。此后端作业应在完成时执行回调方法,该方法将释放一个信号量。前端不必等待漫长的过程结束,就可以从启动作业的调用中得到响应。你知道吗
我试图使用多处理库中的Pool类来解决这个问题,但是遇到了一些问题。也就是说,执行传入apply\u async的方法的唯一方法似乎是调用apply\u async调用返回的ApplyResult对象中的.get()方法。你知道吗
为了解决这个问题,我想创建一个目标为apply的Process对象_结果.get. 但这似乎不管用。你知道吗
我在这里缺少一个基本的理解吗?你们有什么建议来解决这个问题。你知道吗
下面是我现在的一个小例子:
p = Pool(1)
result = p.apply_async(long_process, args=(config, requester), callback=complete_long_process)
Process(target=result.get).start()
response = {'status': 'success', 'message': 'Job started for {0}'.format(requester)}
return jsonify(response)
提前谢谢你的帮助!你知道吗
我不太明白为什么这里需要一个进程对象。请看以下片段:
如果我理解你想要达到的目标,这就是。一旦您调用apply\u async,它就会启动long\u process函数并继续执行主程序。一旦完成,就调用complete\u long\u进程。不需要使用get方法来执行long\u进程,并且代码不会阻塞和等待任何东西。你知道吗
如果长\u进程似乎没有运行,我假设您的问题在长\u进程中的某个地方。你知道吗
汉努
相关问题 更多 >
编程相关推荐