- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
尝试使用 celery multi 运行 supervisord (3.2.2)。
好像是supervisord处理不了。单个 celery worker 工作正常。
这是我的supervisord配置
celery multi v3.1.20 (Cipater)
> Starting nodes...
> celery1@parzee-dev-app-sfo1: OK
Stale pidfile exists. Removing it.
> celery2@parzee-dev-app-sfo1: OK
Stale pidfile exists. Removing it.
celeryd.conf
; ==================================
; celery worker supervisor example
; ==================================
[program:celery]
; Set full path to celery program if using virtualenv
command=/usr/local/src/imbue/application/imbue/supervisorctl/celeryd/celeryd.sh
process_name = %(program_name)s%(process_num)d@%(host_node_name)s
directory=/usr/local/src/imbue/application/imbue/conf/
numprocs=2
stderr_logfile=/usr/local/src/imbue/application/imbue/log/celeryd.err
logfile=/usr/local/src/imbue/application/imbue/log/celeryd.log
stdout_logfile_backups = 10
stderr_logfile_backups = 10
stdout_logfile_maxbytes = 50MB
stderr_logfile_maxbytes = 50MB
autostart=true
autorestart=false
startsecs=10
我使用以下监督变量来模拟我启动 celery 的方式:
监督者
supervisorctl
celery:celery1@parzee-dev-app-sfo1 FATAL Exited too quickly (process log may have details)
celery:celery2@parzee-dev-app-sfo1 FATAL Exited too quickly (process log may have details)
我尝试将/usr/local/lib/python2.7/dist-packages/supervisor/options.py 中的值从 0 更改为 1:
numprocs_start = integer(get(section, 'numprocs_start', 1))
我仍然得到:
celery:celery1@parzee-dev-app-sfo1 FATAL Exited too quickly (process log may have details)
celery:celery2@parzee-dev-app-sfo1 EXITED May 14 12:47 AM
Celery 正在启动,但 supervisord 没有跟踪它。
root@parzee-dev-app-sfo1:/etc/supervisor#
ps -ef | grep celery
root 2728 1 1 00:46 ? 00:00:02 [celeryd: celery1@parzee-dev-app-sfo1:MainProcess] -active- (worker -c 16 -n celery1@parzee-dev-app-sfo1 --loglevel=DEBUG -P processes --logfile=/usr/local/src/imbue/application/imbue/log/celeryd.log --pidfile=/usr/local/src/imbue/application/imbue/log/1.pid)
root 2973 1 1 00:46 ? 00:00:02 [celeryd: celery2@parzee-dev-app-sfo1:MainProcess] -active- (worker -c 16 -n celery2@parzee-dev-app-sfo1 --loglevel=DEBUG -P processes --logfile=/usr/local/src/imbue/application/imbue/log/celeryd.log --pidfile=/usr/local/src/imbue/application/imbue/log/2.pid)
celery .sh
source ~/.profile
CELERY_LOGFILE=/usr/local/src/imbue/application/imbue/log/celeryd.log
CELERYD_OPTS=" --loglevel=DEBUG"
CELERY_WORKERS=2
CELERY_PROCESSES=16
cd /usr/local/src/imbue/application/imbue/conf
exec celery multi start $CELERY_WORKERS -P processes -c $CELERY_PROCESSES -n celeryd@{HOSTNAME} -f $CELERY_LOGFILE $CELERYD_OPTS
类似的: Running celeryd_multi with supervisor How to use Supervisor + Django + Celery with multiple Queues and Workers?
最佳答案
由于主管监控(启动/停止/重启)进程,因此进程应该在前台运行(不应被守护进程)。
Celery multi 自身是守护进程,所以它不能与 supervisor 一起运行。
您可以为每个工作人员创建单独的流程并将它们组合成一个。
[program:worker1]
command=celery worker -l info -n worker1
[program:worker2]
command=celery worker -l info -n worker2
[group:workers]
programs=worker1,worker2
你也可以写一个 shell 脚本 makes daemon process run in foreground像这样。
#! /usr/bin/env bash
set -eu
pidfile="/var/run/your-daemon.pid"
command=/usr/sbin/your-daemon
# Proxy signals
function kill_app(){
kill $(cat $pidfile)
exit 0 # exit okay
}
trap "kill_app" SIGINT SIGTERM
# Launch daemon
$ celery multi start 2 -l INFO
sleep 2
# Loop while the pidfile and the process exist
while [ -f $pidfile ] && kill -0 $(cat $pidfile) ; do
sleep 0.5
done
exit 1000 # exit unexpected
关于python - Celeryd multi 与 supervisord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222857/
总结 我通过 celeryd ( as per instructions ) 将 Celery 作为守护进程运行 在配置文件/etc/default/celeryd BROKER_URL="redis
我正在尝试使用Celery使用 RabbitMQ 后端在 Fedora 上运行异步后台任务,但我发现它非常不可靠。最大的问题是它偶尔会多次运行相同的任务,而我无法诊断原因。 我不认为我的代码多次触发该
如何确保 celeryd 仅作为单个进程运行?当我运行 manage.py celeryd --concurrency=1 然后运行 ps aux | grep celery 我看到 3 个实例在
我们已将 django 配置为在触发任何错误 或以上错误时向我们发送电子邮件。这是使用标准 LOGGING configuration 完成的在 Django 。我想在 celery 中有同样的行为。
在运行状态命令时出现以下错误:- Am using rabbitmq as the messaging broker 我正在关注这个 blog sudo /etc/init.d/celeryd st
我将 celeryd 作为守护进程运行,但有时我无法优雅地停止它。当我发送 TERM 信号并且队列中有项目(在本例中为 service celeryd stop )时,celeryd 将停止接受新作业
我以一种不常见的方式使用 celery - 我在 celery 启动时创建自定义进程,该进程应该在 celery 运行时一直运行。Celery 工作人员使用此过程来完成他们的任务(不需要详细信息)。
我发布了这个问题(和答案),所以如果以后有人遇到这个问题,你可以用谷歌搜索。 如果你想像这样在 Django 中运行 celeryd: python manage.py celeryd 您可以在启动后
我有一个提醒类型的应用程序,它使用“eta”参数在 celery 中安排任务。如果提醒对象中的参数发生变化(例如提醒时间),那么我会撤销之前发送的任务并排队一个新任务。 我想知道是否有任何好的方法可以
我正在尝试在我的设置中运行 celerdy + redis。 CELERYD_NODES="worker1" CELERYD_NODES="worker1 worker2 worker3" CELER
大约 1 个月的时间 celeryd 工作正常,但现在我注意到 celeryd 已停止工作。我尝试重新启动 celery 但出现错误。 下面是我尝试启动 celery 的命令... Command1
上周我在我的生产系统上安装了 RabbitMQ 和 Celery,在我的本地开发人员上进行了测试并且一切正常。 我感觉我的任务没有在生产环境中执行,因为我有大约 1200 个任务仍在队列中。 我运行
尝试使用 celery multi 运行 supervisord (3.2.2)。 好像是supervisord处理不了。单个 celery worker 工作正常。 这是我的supervisord配
当我检查 celery 是否正在运行时,我收到消息“celeryd dead but subsys locked”。 我在尝试停止服务时收到一条 [失败] 消息,而一旦我启动它,我又收到此消息。 我已
我对 redis 和 celery 有点陌生。每次重启apache都需要重启celeryd和redis吗?我将 celery 和 redis 与托管在 webfaction 上的 django 项目一
我们在 Supervisor 后面运行 Celery 并以 celeryd --events --loglevel=INFO --concurrency=2 但是,这会创建一个最多三层深的流程图,最多
我的 celery 配置文件中有以下设置: CELERYD_LOG_DEBUG='FALSE' CELERYD_LOG_FILE=r'/var/log/celery/celeryd.log' CELE
我刚开始使用django-celery我想设置 celeryd 作为守护进程运行。 instructions但是,似乎表明一次只能为一个站点/项目配置它。 celeryd 可以处理多个项目,还是只能处
这些有什么区别? celery celery 工 celerybeat 我正在尝试设置 celery + supervisor,网络上的一些 conf 文件不止一个,而其他人只有一个。 最佳答案 据我
我有一项每分钟更新一次的任务。 这是我用于Django应用程序的Dockerfile。 FROM python:3-onbuild COPY ./ / EXPOSE 8000 RUN pip3 ins
我是一名优秀的程序员,十分优秀!