问题标签 [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.

0 投票
1 回答
1331 浏览

python - 向芹菜守护进程添加花?

是否可以向芹菜守护进程添加花?

下面是我的芹菜配置文件,我尝试将花配置添加到 CELERYD_OPTS 变量中,但失败了。

或者我可以在配置文件中添加另一个命令来让花与芹菜一起运行吗?

0 投票
0 回答
69 浏览

python - 使用花监控芹菜工人时,我应该如何知道工人部署在哪里?

在花中,我发现了一些我不知道它在哪里的工人,因为我需要更新工人,对于未知的工人,我可以将其从消费中删除。有什么方法可以找到工人的部署位置吗?我猜其他一些开发人员在本地启动它们,但我应该如何知道 IP 地址?在此处输入图像描述

0 投票
0 回答
667 浏览

python - 芹菜没有在 django 中检测到新任务

我有一个具有以下层次结构的 django 项目:

所有 celery 任务都在celery_tasks应用程序中:

模块是新添加的test模块,任务如下:

测试模块主要包含两个文件:

的内容__init__.py如下:

from .mytest import test

但是我在芹菜中看不到新创建的任务。例如,如果我执行以下操作,我看不到celery_tasks.test.s列表中的任务:

我在这个过程中遗漏了什么吗?

0 投票
1 回答
1358 浏览

celery - 芹菜花持久数据未恢复

环境:

  • 蟒蛇:3.4
  • 芹菜:4.1.0
  • 花:0.9.0
  • 森托斯:7.0

    --persistent使用标志。芹菜版v4.1.0。

如果我创建了几个任务,它们会按预期运行。

在我发送一个 SIGINT 之后:

DB 文件“flower”显然包含正确的数据。当我再次开始开花时:

如果我运行 Python 并使用搁置加载文件:

所以,当 shelve 读取文件时,有些东西不能正常工作。

0 投票
2 回答
783 浏览

python - 花不显示任务事件

在这里,我找到了如何向 Flower 发送事件。接下来,我尝试在我的代码中使用它,就像在github issue中一样。我的版本:

如果出现错误,Flower 会收到有关失败任务的信息:

花的仪表板

但是当我尝试单击并查找有关它的额外信息时,我看到:

有关失败任务的信息

我应该如何使用send_event

0 投票
1 回答
1067 浏览

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机器需要什么?如何将其设置为客户端服务器架构?

0 投票
1 回答
1331 浏览

python-3.x - 芹菜与充满活力的工人

我正在整理一个基于 Celery 的数据摄取管道。我在文档中的任何地方都看不到的一件事是如何构建一个只有在有工作要做时才运行的流程。(老实说,这似乎是 Celery 设计中的一个重大缺陷)

我知道 Celery 本身不会处理实际服务器的自动缩放,这很好,但是当我模拟这个 Flower 时,除非提交任务时工作人员在线,否则看不到提交的工作。为什么?除非有实际工作要做,否则我会喜欢一个不为服务器付费的世界。

工作流程:

  1. 想象一个 While 循环,它使用该celery_app.send_task方法添加要处理的新数据。

  2. 我有自定义代码,可以看到队列中有 N 条消息。它启动一个服务器,并为该任务启动一个 Celery 工作者。

  3. Celery worker 上线,开始工作。

但。

Flower 没有该任务的记录,即使我看到经纪人有一条“消息”,并且在观察工人的输出时,我可以看到它做了它的事情。

如果我让工作人员在线,然后提交一个任务,它会监控一切都很好而且花花公子。

有谁知道为什么?

0 投票
1 回答
280 浏览

python - Celery:当达到任务的最大重试次数时,组中的父作业和其他任务挂起

我有 celery 任务,分组在一起,当组中的一个任务达到最大重试次数时会挂起。

我只是在任务主体中提出异常(即解包和验证),因为我仍在试验任务的重试功能。

这是代码:

当达到验证任务的最大重试次数时,其他任务(解包)以及父任务(process_job)都没有完成。也就是说,它们的状态分别被困在“RETRY”和“STARTED”。以下是快照图像:

1.花显示工作状态

在此处输入图像描述

2. 终端显示已达到最大重试次数的 Celery worker

在此处输入图像描述

3.验证花的详细状态

在此处输入图像描述

4.花中解包详细状态

在此处输入图像描述

如何解决未完成任务的问题?我在任务代码/实现中做错了吗?

0 投票
2 回答
2130 浏览

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.

那么,我应该如何修改Dockerfileanddocker-compose.yml以便花能够同时监控tasksandtasks2呢?

0 投票
2 回答
1918 浏览

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