在Python(Django)应用中使用线程化SOAP请求?
我正在开发一个应用程序,这个程序需要发送一些耗时的SOAP请求(使用suds库)。在某些情况下,用户会改变一个对象的状态,这样就会触发一个或多个SOAP请求来获取一些数据。目前,这些请求是在后台进行的,而用户必须等待它们完成。
请问,这种情况适合用Python的线程吗?还是说这样做会引发问题?有没有更好的建议?
2 个回答
0
我使用生产者-消费者模型,并搭配一个RPCXML服务器来处理这类事情。我启动了3个线程的池子,当有人请求做某件事(比如添加文件等)时,我就把这个工作放到队列里,并返回一个标识符。然后,前端的ajax请求可以用这个标识符来检查进度,以便更新进度条等等。
1
听起来不错!你几乎总是希望在后台线程中处理那些需要长时间运行的任务,因为很多SOAP请求在等待网络输入输出的时候会花费很多时间……
唯一的问题是,你怎么把数据返回给用户呢?这是一个图形界面应用,还是一个网页应用,或者其他什么呢?