问题标签 [flower]
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.
python - 向芹菜守护进程添加花?
是否可以向芹菜守护进程添加花?
下面是我的芹菜配置文件,我尝试将花配置添加到 CELERYD_OPTS 变量中,但失败了。
或者我可以在配置文件中添加另一个命令来让花与芹菜一起运行吗?
python - 芹菜没有在 django 中检测到新任务
我有一个具有以下层次结构的 django 项目:
所有 celery 任务都在celery_tasks
应用程序中:
模块是新添加的test
模块,任务如下:
测试模块主要包含两个文件:
的内容__init__.py
如下:
from .mytest import test
但是我在芹菜中看不到新创建的任务。例如,如果我执行以下操作,我看不到celery_tasks.test.s
列表中的任务:
我在这个过程中遗漏了什么吗?
celery - 芹菜花持久数据未恢复
环境:
- 蟒蛇:3.4
- 芹菜:4.1.0
- 花:0.9.0
森托斯:7.0
--persistent
使用标志。芹菜版v4.1.0。
如果我创建了几个任务,它们会按预期运行。
在我发送一个 SIGINT 之后:
DB 文件“flower”显然包含正确的数据。当我再次开始开花时:
如果我运行 Python 并使用搁置加载文件:
所以,当 shelve 读取文件时,有些东西不能正常工作。
python - 花不显示任务事件
在这里,我找到了如何向 Flower 发送事件。接下来,我尝试在我的代码中使用它,就像在github issue中一样。我的版本:
如果出现错误,Flower 会收到有关失败任务的信息:
但是当我尝试单击并查找有关它的额外信息时,我看到:
我应该如何使用send_event
?
python - 使用 Celery 和 Python 将输入和图像处理作业发送到多台机器
最近我一直在使用 python 3.x 在 Ubuntu 中使用 celery 和 Flower(用于单台机器上的仪表板和任务可视化)。首先我安装了rabbitmq-server、radis、celery 和flower。然后我创建了一个名为的脚本,tasks.py
其中包含以下内容:
然后我创建了一个run.py
包含
在运行后者之前,我启动了两个不同的终端并将目录更改为两个脚本的位置。sudo celery -A tasks flower
然后我在一个终端和另一个终端跑celery -A tasks worker --loglevel=info
。事实证明(意外惊喜) celery 可以将每个任务分配到一个单独的核心,从而节省大量时间。当然,这种节省时间只适用于大型函数,因为较小的函数会产生线程生成开销,这不会带来任何好处。
这让我想到了另一个问题。假设我有 3 台机器连接到同一个 WIFI 路由器,而不是一台机器。我可以使用ifconfig
命令计算出每台 Ubuntu 机器的 IP 地址。让我们说其中一台机器是一台主机,其中包含一个main.py
使用 Opencv-Python 捕获对象捕获实时图像的脚本。然后它获取每个图像,将其序列化并将其作为消息发送到两台工作机器。两台工作机器独立工作,并且都对相同的图像进行反序列化。一台工作机器进行猫分类并返回猫的概率,另一台机器进行狗分类并返回狗的概率。一台工作机器可能需要比另一台更长的时间才能得出结论。但是,对于该特定帧,主机需要等待两个分类结果,然后再将一些结果叠加在该特定帧的顶部。本能地,我被引导相信主机在继续之前需要检查两个工作是否都准备好了(e.g. result_worker_one.ready() == result_worker_two.ready() == True
)。我怎样才能实现这种行为?如何在主机中序列化一个 RGB 图像并在工作机器中反序列化?backend
每台broker
机器需要什么?如何将其设置为客户端服务器架构?
python-3.x - 芹菜与充满活力的工人
我正在整理一个基于 Celery 的数据摄取管道。我在文档中的任何地方都看不到的一件事是如何构建一个只有在有工作要做时才运行的流程。(老实说,这似乎是 Celery 设计中的一个重大缺陷)
我知道 Celery 本身不会处理实际服务器的自动缩放,这很好,但是当我模拟这个 Flower 时,除非提交任务时工作人员在线,否则看不到提交的工作。为什么?除非有实际工作要做,否则我会喜欢一个不为服务器付费的世界。
工作流程:
想象一个 While 循环,它使用该
celery_app.send_task
方法添加要处理的新数据。我有自定义代码,可以看到队列中有 N 条消息。它启动一个服务器,并为该任务启动一个 Celery 工作者。
Celery worker 上线,开始工作。
但。
Flower 没有该任务的记录,即使我看到经纪人有一条“消息”,并且在观察工人的输出时,我可以看到它做了它的事情。
如果我让工作人员在线,然后提交一个任务,它会监控一切都很好而且花花公子。
有谁知道为什么?
docker - 如何使用花来监控1个以上的工人
目前,我创建了一个基于 Celery worker + Flower 监控的解决方案
https://github.com/itsrifat/flask-celery-docker-scale
Celery worker 和 Flower 监控都运行在同一个目录中flask-celery
原因是,Flower 可以访问 Celery 工作代码模块,并且以下带有-A
标志的命令可以工作
这就是他们的 docker-compose.yml 的样子
现在,我想创建另一个新的工作task2.py
代码,它将位于名为flask-celery2
.
那么,我应该如何修改Dockerfile
anddocker-compose.yml
以便花能够同时监控tasks
andtasks2
呢?
python-3.x - 芹菜花 API 结果未返回
调用Flower API /api/task/apply/*
只是挂起,没有返回结果,即使根据 Web UI 处理并成功了任务。
重现错误:
通过 id 检查任务只是将其显示为待处理,即使 Flower UI 将其显示为成功,并且我还在工作日志中看到了任务结果。
我怀疑这个日志行表明了这个问题:celery-worker_1 | [2018-03-06 15:25:15,160: DEBUG/MainProcess] pidbox received method enable_events() [reply_to:None ticket:None]
.
Traceback
当我按下 Ctrl+C 退出上面挂起的 curl 命令时,花边也有一个(见下面的日志)。
任务.py
日志
Dockerfile
码头工人-compose.yml