python接口如何先return后还能调用函数

业务场景:java程序中需要调用python程序接口做视频处理。为了不影响请求python接
口使java程序一直等待返回,需要python接口收到请求后就return成功或者失败状态,
然后再进行视频处理,处理完成后再回调java接口。
那么问题来了:python接口如何先return后还能调用函数?不能使用try/catch的finall去
处理,这样处理还是会先执行finally里的函数后才去return

你需要的是异步,用回调

就是Python的接口要收到请求后就先返回。然后再进行真正的视频处理工作,等工作完成后,再调用Java返回真正的结果

异步 可以尝试一下gevent

写一个java异步函数,和一个java回调函数。把python处理代码放异步函数里,python代码执行完后回调。

简单实现,可以设置一个标记,比如写入一个文件一个指定参数,另外一个子程序定期检测, 有消息就处理,处理完毕后再写入另外一个处理完毕的文件,在主程序也循环检测处理结果,一旦处理完毕就调用java


用自带的消息处理机制就行了

从 python 程序的架构上,应该有多线程或多进程(甚至多个不同python服务器,服务器之间用mq通信),有专门处理 java 通信的,还有专门处理视频。看楼主提的问题,感觉没有分开,这样系统业务多的话,会有问题。

如果业务少的话,仅仅为了实现楼主的这个 return 后怎么再处理,那就在 return 前用 python threading.Thread 再开一个线程处理视频即可。

将return语句放在try语句块中