38得票1回答
Python多线程请求之requests模块

我过去两天一直在尝试使用多线程功能构建网络爬虫,但是我仍然无法成功。起初我尝试使用threading模块进行常规的多线程方法,但并没有比使用单个线程更快。后来,我了解到requests是阻塞的,而多线程方法并不真正有效。因此,我继续研究,并了解了grequests和gevent。现在我正在使用...

36得票4回答
Eventlet、gevent或Stackless+Twisted,Pylons,Django和SQL Alchemy。

我们在需要大量异步IO的应用程序中广泛使用Twisted。有一些情况是CPU绑定,因此我们会生成一组进程来完成这项工作,并且还有一个系统可以跨多个服务器管理这些进程池 - 所有这些都在Twisted中完成。效果非常好。问题是很难让新团队成员迅速上手。在Twisted中编写异步代码需要接近垂直的...

35得票4回答
同时在进程中使用Celery和在任务中使用gevent

我想使用 Celery 作为任务队列,这样我的 Web 应用程序就可以将任务加入队列、返回响应并在处理任务的同时——或者某一天——处理。我正在构建一种 API,因此我不知道未来会有什么样的任务,可能涉及 HTTP 请求、其他 IO 或占用 CPU 的任务。基于这一点,我想运行 Celery 的...

32得票2回答
aiogevent事件循环“失败”无法跟踪greenlets。

最近我遇到了一个问题,混合使用gevent和asyncio的代码时会出现问题,因为当我用gevent.monkey.patch_all()对一些同步库进行monkey patch时,它们可以正常工作。我找到了aiogevent库,它似乎通过实现PEP 3156来帮助解决这个问题,并用您选择的另...

31得票3回答
Python - Flask-SocketIO 在线程中发送消息:并不总是有效

我遇到了这样一种情况:我从客户端接收到消息。在处理该请求的函数 (@socketio.on) 中,我想调用一个执行某些重型工作的函数。这不应该导致主线程被阻塞,而且应该在工作完成后通知客户端。因此我启动了一个新线程。 现在我遇到了一个非常奇怪的行为: 消息永远不会到达客户端。然而,代码却到达...

30得票1回答
Eventlet vs Greenlet vs gevent?

我正在尝试创建一个带有事件循环的GUI框架。一些线程用于处理用户界面,另一些线程用于事件处理。我已经搜索了一些资料,发现了以下三个库,想知道哪一个更好用?它们各自的优缺点是什么呢? 我可以使用这三个库中的任何一个,甚至使用Python threads 或 concurrent 库来创建自己的...

29得票1回答
使用gevent的redis-py

redis-py库可以与gevent一起使用吗? 有没有人使用redis-py库和gevent一起运行的经验?是否有可用的示例? 它们是否能够很好地配合?在大规模使用时需要注意什么预防措施或技巧吗? 换句话说,为了使redis-py连接使用gevent greenlets,除了monke...

28得票3回答
在Python(使用Django)中理解Comet需要帮助

我花了两天时间,但仍然无法理解Python中Comet的所有选择和配置。我已经阅读了这里的所有答案以及我能找到的每篇博客文章。现在感觉我快要出血了,所以如果问题有任何错误,我万分抱歉。 我是完全新手,之前做过的都是使用Apache上的PHP/Django后端的简单非实时网站。 我的目标是创...

27得票5回答
Gevent猴子补丁破坏了多进程功能

我想使用multiprocessing的进程池来运行一组进程,每个进程都将运行一个gevent协程池。这样做的原因是有很多网络活动,但也有很多CPU活动,所以为了最大化带宽和所有CPU核心的利用率,我需要多个进程和gevent的异步monkey补丁。我正在使用multiprocessing的管...

26得票2回答
使用gevent的monkey patching与线程一起使用会使线程串行工作

我正在使用gevent并且我正在对所有东西进行猴子补丁。 看起来这种猴子补丁会导致线程按顺序运行。 我的代码:import threading from gevent import monkey; monkey.patch_all() class ExampleThread(threadi...