我正在嘗試使用app.conf.humanize(with_defaults=False)
打印出芹菜的配置,下面是user guide中的示例。但是在使用with_defaults=False
時,我總是會得到一個空字符串,我知道配置更改已生效,因爲我可以使用.humanize(with_defaults=True)
來查看更改。芹菜app.conf.humanize的默認值是什麼(with_defaults = False)?
我猜想用app.conf.config_from_object('myconfig')
添加配置會將配置設置加載爲「默認值」,因此有沒有一種方法可以以非默認方式在模塊myconfig
加載配置?
這是我的源代碼:
#myconfig.py
worker_redirect_stdouts_level='INFO'
imports = ('tasks',)
和
#tasks.py
from celery import Celery
app = Celery()
app.config_from_object('myconfig')
print "config: %s" % app.conf.humanize(with_defaults=False)
@app.task
def debug(*args, **kwargs):
print "debug task args : %r" % (args,)
print "debug task kwargs: %r" % (kwargs,)
我使用env PYTHONPATH=. celery worker --loglevel=INFO
開始芹菜,它打印config:
(如果我更改爲with_defaults=True
我得到預期的全輸出)。
我提起[錯誤報告(https://github.com/celery/celery/issues/3652),因爲它看起來'humanize()'在訪問conf的'app.conf ['worker_redirect_stdouts_level']' – ecerulm