use*_*692 5 python django asynchronous
在 Django Web 应用程序中异步运行某些代码段是否可以。如果是这样怎么办?
例如:
我有一个可以返回成百上千个结果的搜索算法。我想在数据库中输入这些项目是搜索的结果,所以我可以看到用户搜索最多的内容。我不希望客户端必须等待额外的成百上千个数据库插入。有没有办法异步执行此操作?这样做有什么危险吗?有没有更好的方法来实现这一目标?
就姜戈而言,是的。
更大的问题是你的网络服务器以及它是否能很好地处理线程。例如,gunicorn的同步工作者是单线程的,但还有其他引擎,例如greenlet。我不确定他们使用线程的效果如何。
如果您从线程分叉,则结合线程和多处理可能会成为一个问题:
http://bugs.python.org/issue6721
话虽如此,我知道流行的性能分析实用程序一直在使用线程来报告指标,因此这似乎是一种可接受的做法。
总之,使用标准库中的 threading.Thread 对象似乎是最安全的,只要你在其中所做的任何事情都不会分叉(python的多处理库)
https://docs.python.org/2/library/threading.html
| 归档时间: |
|
| 查看次数: |
3855 次 |
| 最近记录: |