Django - 异步调用RESTful服务
我需要创建一个Django网页平台,让用户可以通过填写表单来选择和运行临时报告,表单中的值会对应到每个具体报告中定义的参数。处理用户报告执行请求的视图需要向远程的Jasper Reports Server发送RESTful服务请求,实际的报告输出就是在这个服务器上生成的。
我已经写好了客户端,用来向远程服务器发送RESTful服务请求。根据报告的大小,这些服务请求可能需要几分钟才能完成。
我想知道,在用户的表单验证通过后,最好的方法是什么来进行服务请求,这样请求就可以异步处理(在后台进行),用户在报告生成的同时还可以继续使用这个网页平台。
我需要在提交参数表单时进行AJAX调用,还是应该在表单验证通过后,在视图中为RESTful客户端启动一个新线程?或者有其他的办法吗?
1 个回答
4
django-celery 是一个很受欢迎的工具,用来处理异步任务。我通常使用 greenlets,因为我对它们比较熟悉。
然后,为了通知用户,你可以使用通知框架来告诉客户端某个事情已经完成。