在我的应用程序中,用户可以从接口启动一个爬行动作,这个动作将在服务器端的线程中执行。该抓取在while
循环中执行,并将发送一些信息(目前,作为控制台中的打印)。从服务器发送信息到查看而不重新加载django
我想要做的就是将控制台中显示的这些信息发送到视图。此图总结过程
View Server
| |
| Call the async function with ajax | crawl Thread
|---------------------------------------->|------------>|
| | |
| | |
| send back information | information |
|<----------------------------------------|<------------|
| | ...
|------| |
| | refresh view ...
| |
|<------
...
有没有办法做到这一点?我不知道如何做到这一点(信号?websockets?)
谢谢!
阅读有关它在这里请http://stackoverflow.com/questions/6599783/django-frontend-to-run-subprocess-output-to-browser-window –
如何“企业”你在找什么?有更快的黑客攻击,但如果你正在寻找一个可扩展的解决方案,有办法用celery/rabbitmq来处理后端,然后可能使用nodejs或gevent(或其他功能)来处理websocket(它将允许您进行异步调用,然后从服务器推送) – Foon
Eugene:我的主要问题是不显示终端的结果,它是从服务器向视图发送异步响应,无需重新加载页面。 Foon:嗯,它取决于已被参数化的抓取延迟,它可能是一个从服务器发送到视图的消息,每个小时可能是每10秒钟一次。 我已经听说过芹菜,但从未使用它。从我关于nodejs的红色来看,它是面向Javascript服务器的,所以如果我没有错,我可以从服务器向视图发送异步响应? – Kobz