问题标签 [eventlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
279 浏览

python - Evenlet 信号量,如何限制对特定子进程的调用?

我需要创建一个信号量来限制特定子进程的并行计数。我将 gunicorn 与 eventlet 工作人员一起使用,并允许许多同时连接。大多数情况下,这些都在等待远程数据。但是,它们都会在某个时候进入处理阶段,这涉及调用子进程。虽然这个子进程不应该经常并行运行,因为它很耗内存/CPU。

是否threading.Semaphore正确monkey_patch'd并可以与gunicorn内的eventlet一起使用?

0 投票
1 回答
2544 浏览

python - 芹菜池类型和并发

我很难把多线程并发在 celery 中的工作方式放在一起。

看起来要使用的默认类型是-P eventlet. 我假设-P threads由于 GIL 而这不起作用,并且在实践中不会有并发性。

但它看起来也像(从这里的例子)我不能简单地指定-P eventlet并开始触发任务,我必须通过启动并行任务celery.group。据此多进程工作者永远不会并行消费消息。

所以,总而言之,看起来任务的真正并行化,我必须使用多处理。我可以使用 eventlet,但我必须修改我的任务的运行方式。我的任务是响应外部触发器随机触发的,所以我事先不知道我需要创建的时间和数量 - 所以看起来我不能在我的用例中使用 eventlet。

这个对吗?

0 投票
1 回答
935 浏览

python - 如何将 pymysql 与 gevent 和 django-celery 一起使用?

我将以下内容放在我的 manage.py 中(使用 django-celery 3.0.21):

当我尝试启动 django 或 celery 时出现以下错误:

基本上我真的很想将 celery 与 eventlet 一起使用,但我需要一个“绿色”的 Python MySQL 库。

0 投票
1 回答
924 浏览

python - 从 eventlet.green 导入 urllib2 错误

当我尝试这段代码时,它给了我这个错误。我使用python 2.7

我怎么解决这个问题。感谢帮助

0 投票
2 回答
238 浏览

python - 如果您有一个阻塞功能,请使用 greenthreads

Python 中的绿色线程具有协作式多任务处理来完成工作。它们是否应该用于以下场景,因为它们不会为此产生/将控制权传递给其他线程。

设想:

阻塞功能只有一个命令:一个长时间运行的 SSH 到另一台机器。因此,即使您有多个绿色线程,也有可能多个 SSH 连接甚至都没有打开,因为第一个线程不会控制下一个线程来启动连接。

将通过机器上的 SSH 进行安装

0 投票
2 回答
1234 浏览

python - Eventlet 的产生不起作用。这么奇怪

**** 大家好

我正在使用 eventlet 来实现网络爬虫。我的代码就是这样

但它什么也没输出,似乎 fetch 根本没有运行

顺便说一句,pool.imap 确实有效

发生了什么?

我想要做的是:url 源源不断地来,即一个接一个。像这样

但它也不起作用。

提前致谢....

0 投票
3 回答
3141 浏览

python-2.7 - AttributeError:“模块”对象没有属性“monkey_patch”

我想在 python 中使用 celery 来使用并发。我有一个 tasks.py 文件,它是一个使用 BeautifulSoup 的网络爬虫。我所做的进口是:

对于芹菜工人,我使用这个命令:

错误:

我想使用 1000 个线程执行任务。我试过导入eventlet,然后做了:

仍然没有工作,同样的错误。

请如果有人可以提供帮助,那就太好了。谢谢。

0 投票
1 回答
1182 浏览

python - 使用 eventlet 运行 celery 时,Fabric 失败,名称查找失败

我有一个 celery 任务来使用结构在远程机器上运行 sudo 命令:

如果我将芹菜工人运行为:

它工作正常!但是当我用 eventlet 运行工人时:

它变得非常糟糕,并给了我这个例外:

警告/MainProcess] 无

仅供参考:我还有其他具有不同 HTTP API 调用的任务,因此尽管 eventlet 会有所帮助,但在这种情况下对我不起作用

0 投票
1 回答
471 浏览

python - python eventlet fabric给出IOError:[Errno 1] Operation not allowed when running celery worker

我有一个芹菜工人,其中包括一个在远程机器上运行木偶代理的任务,这是一个阻塞调用。我在其他可以从 eventlet 中受益的任务中也有其他 http api 流

当我运行工人时

它给了我一个异常跟踪,如下所示:

我已经阅读:为什么 select.select() 可以处理磁盘文件而不是 epoll()?并查看 eventlet 使用结构或此类阻塞调用存在问题。有没有办法告诉芹菜不要修补这个特定的任务?

0 投票
0 回答
644 浏览

python - Celery 中的 Django 和并发任务

我有一个复杂的场景需要解决。

我正在使用 Celery 并行运行任务,我的任务涉及 HTTP 请求,我计划将 Celery 与 eventlet 一起用于此目的。

让我解释一下我的场景:

我有 2 个可以并行运行的任务和需要处理这 2 个任务的输出的第三个任务,因此我使用 Celery 组来运行 2 个任务和 Celery 链将输出传递给第三个任务来处理它当他们完成时。

现在它变得复杂了,第三个任务需要产生多个我想并行运行的任务,我想将所有输出收集在一起并在另一个任务中处理它。

所以我为多个任务创建了一个组,并用一个链来处理所有信息。

我想我缺少有关 Celery 并发原语的基本信息,我有一个 1 celery 任务运行良好,但我需要让它更快。

这是代码的简化示例:

这就是我开始此操作的方式:

我保存 task.id 并每 30 秒拉一次服务器以查看结果是否可用: