首页 > 解决方案 > RuntimeWarning:您正在以超级用户权限运行工作程序:绝对不推荐这样做

问题描述

当我对 celery worker 进行守护时,它会给我上述警告以及以下错误:

Traceback(最近一次调用最后):文件
“/var/app/venv/env/lib/python3.7/site-packages/celery/worker/worker.py”,
第 205 行,在 start self.blueprint.start(self )
文件“/var/app/venv/env/lib/python3.7/site-packages/celery/bootsteps.py”,第 119 行,在 start step.start(parent)
文件“/var/app/venv/env /lib/python3.7/site-packages/celery/bootsteps.py”,第 370 行,在开始返回 self.obj.start()
文件“/var/app/venv/env/lib/python3.7/site- packages/celery/worker/consumer/consumer.py”,第 316 行,在 start blueprint.start(self)
文件“/var/app/venv/env/lib/python3.7/site-packages/celery/bootsteps.py ",第 119 行,在 start step.start(parent)
文件“/var/app/venv/env/lib/python3.7/site-packages/celery/worker/consumer/consumer.py”,第 592 行,在 start c.loop(*c.loop_args())
文件中“ /var/app/venv/env/lib/python3.7/site-packages/celery/worker/loops.py”,第 91 行,在 asynloop next(loop)
文件中“/var/app/venv/env/lib/ python3.7/site-packages/kombu/asynchronous/hub.py”,第 299 行,在 create_loop item()
文件“/var/app/venv/env/lib/python3.7/site-packages/vine/promises. py”,第 170 行,调用中 return self.throw()
文件“/var/app/venv/env/lib/python3.7/site-packages/vine/promises.py”,第 167 行,调用中 retval = fun (*final_args, **final_kwargs)
_schedule_queue 队列中的文件“/var/app/venv/env/lib/python3.7/site-packages/kombu/transport/SQS.py”,第 336 行,callback=promise(self._loop1, (queue,)) ,
文件“/var/app/venv/env/lib/python3.7/site-packages/kombu/transport/SQS.py”,第 352 行,在 _get_bulk_async 返回 self._get_async(queue, maxcount, callback=callback) 文件“/var/app/venv/env/lib/python3.7/site-packages/kombu/transport/SQS.py”,第 362 行,在 _get_async qname,count=count,connection=self.asynsqs,文件“/var /app/venv/env/lib/python3.7/site-packages/kombu/transport/SQS.py”,第 456 行,在 asyncsqs region=self.region
文件“/var/app/venv/env/lib/python3 .7/site-packages/kombu/asynchronous/aws/sqs/connection.py”,第 27 行,在init **kwargs 文件“/var/app/venv/env/lib/python3.7/site-packages/kombu/asynchronous/aws/connection.py”,第 186 行,init **http_client_params)
文件“/var/app /venv/env/lib/python3.7/site-packages/kombu/asynchronous/aws/connection.py”,第 151 行,在init self._httpclient = http_client 或 get_client() 文件中“/var/app/venv/env /lib/python3.7/site-packages/kombu/asynchronous/http/init .py”,第 22 行,在get_client client = hub._current_http_client = Client(hub, **kwargs) 文件“/var/app/venv/ env/lib/python3.7/site-packages/kombu/asynchronous/http/ init .py”,第 13 行,在客户端返回 CurlClient(hub, **kwargs)
文件“/var/app/venv/env/lib/ python3.7/site-packages/kombu/asynchronous/http/curl。py",第 43 行,在init raise ImportError('curl 客户端需要 pycurl 库。') ImportError: curl 客户端需要 pycurl 库。上面的错误有点奇怪,因为 pycurl 已经安装了。

当我更改时user=nobody,会发生以下错误:

文件“/var/app/venv/env/lib/python3.7/site-packages/django/apps/registry.py”,第 135 行,在 check_apps_ready 中引发 AppRegistryNotReady(“应用程序尚未加载。”)django。 core.exceptions.AppRegistryNotReady:应用尚未加载。

标签: pythondjangoceleryamazon-sqssupervisord

解决方案


看看文档。不过,这是一个警告,而不是错误(参见代码)。仅当您允许默认情况下未启用的 pickle 序列化时,在 root 下运行 Celery 才会出错(请参阅此处)。

希望这有助于解决您的问题。


推荐阅读