我可以将 Celery Flower 配置为在关闭 Unix shell 后运行吗?

Posted

技术标签:

【中文标题】我可以将 Celery Flower 配置为在关闭 Unix shell 后运行吗?【英文标题】:Can I configure Celery Flower to run after I close my Unix shell? 【发布时间】:2017-01-08 14:23:35 【问题描述】:

我从最近离开我公司的一名 IT 员工那里继承了一个公司服务器和应用程序,其中包含几个 python 脚本、html 文件和 Unix 服务。他完全没有留下任何文档,所以我很难为我的工作组支持这个应用程序——我不是 IT 专业人员(尽管我可以读/写 python、html 和其他一些语言)。我对一般的服务器特别是 Unix 非常不熟悉。

据我所知,我们的应用程序使用以下内容:

nginx 马戏团/独角兽 rabbitmq 服务器 芹菜 芹菜花

我终于让大部分这些服务运行起来了,但我在 Celery Flower 上苦苦挣扎。我已经能够使用以下命令从我的 PuTTY SSH 连接启动 Flower:

/miniconda3/envs/python2/bin/flower start

但它似乎在我断开连接时停止(服务器:5555 不再显示监控网页)。是否可以将其配置为在后台运行,这样我就不必保持 SSH 连接 24/7 开放?我在 Flower 文档中看到有一个持久化模式,但我不确定是什么。

感谢您的任何建议!

【问题讨论】:

希望您可以访问前雇员的帐户?以该用户身份登录并运行crontab -l。它可能会显示“crontab”条目列表,如果幸运的话,您会看到您的flower 组件正在那里启动。您需要阅读一些关于croncrontab 的信息,它们允许调度作业。虽然man crontab 是“官方”学习方式,但最好在crontab 上搜索教程(可能还有croncrond)。如果该用户也具有root 访问权限,则重复该过程。 .... 如果您知道该服务器上还有其他作业调度系统,请深入了解这些系统是如何设置/配置和使用的。 (Autosys 任何人,还有很多其他人)。我的 cmets 旨在帮助您发现已经设置的内容,并将成为最简单的系统恢复。但这只是您可能需要追求的一条赛道,因此请节省一些精力或游说老板请一位可以解决此问题的专业人士。它可以是百万分之一。如果您只想重建整个系统,请阅读crontab -e(此 cmd arg 可能会破坏现有文件,所以...小心!)。 这里有很多很多的crontab Qs,所以在阅读了crontab 教程之后,扫描一些Qs,看看它们是否有助于增加你的知识。然后创建一个简单的“hello world” crontab 条目,并查看它是否正常工作,然后进行一些其他简单的测试,并逐步在您创建和理解的环境中重建您的系统。祝你好运。 非常感谢您的建议,@shellter!我也会调查那些东西。不幸的是,在他离开时,前员工的系统被擦除了。此外,我们的团队刚刚裁掉了约 20% 的员工,因此在这里聘请专业人士几乎肯定是不可能的。我只是想确保我没有搞砸任何事情,所以我慢慢来。我会研究 cron 的东西 :) 【参考方案1】:

汤姆, 我假设您使用的是 Linux 平台。如果是这种情况,我建议您使用 screen(甚至 tmux)来运行 Flower。它将使应用程序在后台运行,并提供额外的好处,如果您需要检查输出、停止进程等,允许您连接回进程。

要启动应用程序,请使用screen -S Flower -d -m /miniconda3/envs/python2/bin/flower start

要查看进程是否仍在运行,请使用screen -ls,它将列出进程;

There is a screen on:
    17256.Flower    (02/09/16 08:01:16) (Detached)
1 Socket in /var/run/screen/S-hooligan.

要连接回它,请使用screen -r Flower

如果您已连接回屏幕,则使用^a ^d 断开连接,假设转义字符未更改为默认值。要查看完整的键绑定列表,请查看man page,它非常简单。

您也可以考虑使用@REBOOT 指令将此命令添加到系统 crontab,以便它在系统启动时启动。

【讨论】:

以上是关于我可以将 Celery Flower 配置为在关闭 Unix shell 后运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

Celery+rabbitmq+mysql+flower

如何向 Django Celery Flower Monitoring 添加身份验证和端点?

Celery + Flower + FastAPI + RabbitMQ ,Python实现异步消息队列和监控

Celery + Flower + FastAPI + RabbitMQ ,Python实现异步消息队列和监控

Docker,Celery,组合方法失败

flower 指定app