- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 django 1.11.4、python3.5、带主管的 gunicorn 19.7.1 服务器、redis 2.10.6 和 celery 4.1.0。
我的文件结构是这样的:
samy_python
├── celery.py
├── __init__.py
├── settings
├── urls.py
├── wsgi.py
website
├── static
├── templates
├── samy
| ├── samy_firebase.py
| ├── tasks.py
├── views.py
我的 secret 是:
# settings.py
SECRET_KEY = os.environ.get("secret_KEY")
我的 celery 主管 conf 文件是:
[program:gunicorn]
....
environment = secret_KEY="12345"
.....
[program:celery]
directory=/home/username/Projects/samy/samy_python
command=/home/username/Projects/samy/samy_python/env/bin/celery --app=samy_python.celery.app worker -B -l info
user=username
stdout_logfile=/var/log/celery/celery.log
stderr_logfile=/var/log/celery/celery.log
autostart=false
autorestart=false
startsecs=10
我的 celery 文件:
# celery.py
from __future__ import absolute_import
import os
import logging
logger = logging.getLogger('myapp.celery.py')
from celery import Celery
from django.conf import settings
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "samy_python.settings")
# Celery App
# TODO
# [START Celery App]
app = Celery('samy_python')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
# [END Celery App]
我的初始化文件:
# __init__.py
from __future__ import absolute_import
from .celery import app as celery_app
我的 celery settings.py 文件中的配置:
BROKER_URL = 'redis://localhost:6379/1'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/1'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
错误可能来 self 的 settings.py 文件,我使用 env 变量来设置环境。 (生产、开发或测试):
DEBUG = False
DJANGO_TESTING = False
DJANGO_DEVELOPMENT = False
DJANGO_ENV = os.environ.get('DJANGO_ENV')
if DJANGO_ENV == 'DJANGO_TESTING':
DJANGO_TESTING = True
elif DJANGO_ENV == 'DJANGO_DEVELOPMENT':
DJANGO_DEVELOPMENT = True
然后我设置了 firebase 凭据和 Google Api 凭据。然后我从内部获取凭据,例如 samy_firebase.py :
from django.conf import settings
if settings.DJANGO_TESTING == True:
logger.info('Firebase Config: Test DB')
我不确定最后一部分是否相关,但这是我不断收到的错误:
Traceback (most recent call last):
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/kombu/utils/objects.py", line 42, in __get__
return obj.__dict__[self.__name__]
KeyError: 'data'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/dorian/Projects/samy/samy_python/env/bin/celery", line 11, in <module>
sys.exit(main())
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/__main__.py", line 14, in main
_main()
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/celery.py", line 326, in main
cmd.execute_from_commandline(argv)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/celery.py", line 488, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/base.py", line 281, in execute_from_commandline
return self.handle_argv(self.prog_name, argv[1:])
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/celery.py", line 480, in handle_argv
return self.execute(command, argv)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/celery.py", line 412, in execute
).run_from_argv(self.prog_name, argv[1:], command=argv[0])
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/worker.py", line 219, in run_from_argv
*self.parse_options(prog_name, argv, command))
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/base.py", line 403, in parse_options
self.parser = self.create_parser(prog_name, command)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/base.py", line 419, in create_parser
self.add_arguments(parser)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/bin/worker.py", line 275, in add_arguments
default=conf.worker_state_db,
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/utils/collections.py", line 130, in __getattr__
return self[k]
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/utils/collections.py", line 431, in __getitem__
return getitem(k)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/utils/collections.py", line 280, in __getitem__
return mapping[_key]
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/collections/__init__.py", line 982, in __getitem__
if key in self.data:
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/kombu/utils/objects.py", line 44, in __get__
value = obj.__dict__[self.__name__] = self.__get(obj)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/app/base.py", line 148, in data
return self.callback()
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/app/base.py", line 911, in _finalize_pending_conf
conf = self._conf = self._load_config()
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/app/base.py", line 921, in _load_config
self.loader.config_from_object(self._config_source)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/loaders/base.py", line 133, in config_from_object
self._conf = force_mapping(obj)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/celery/utils/collections.py", line 50, in force_mapping
if isinstance(m, (LazyObject, LazySettings)):
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/django/utils/functional.py", line 238, in inner
self._setup()
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/django/conf/__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "/home/dorian/Projects/samy/samy_python/env/lib/python3.5/site-packages/django/conf/__init__.py", line 129, in __init__
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
此外,gunicorn 工作正常,所以如果我不启动 celery 程序,它会接收环境变量。此外,如果我在 settings.py 文件中将 key 设置为“12345”,它就会启动。
最佳答案
像这样在 env 中设置 secret_KEY:
export SECRET_KEY="#mysecret_key"
并检查:
echo $SECRET_KEY
在你的 django 设置中,更改为:
SECRET_KEY = os.environ.get("SECRET_KEY")
关于python - Django,Celery Supervisor : Secret Key Error: django. core.exceptions.ImproperlyConfigured:SECRET_KEY 设置不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47746307/
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!