config.py с инструкцией ‘if’ на Flask

#flask #celery

#flask #сельдерей

Вопрос:

есть ли вероятность, что у меня возникли некоторые проблемы с использованием инструкции if внутри config.py файл в flask? я видел несколько примеров выполнения такой вещи, но, возможно, я делаю что-то неправильно, потому что celery не распознает conf ‘CELERY_RESULT_BACKEND’

 class Config(object):

    if 'VCAP_SERVICES' in os.environ:

        print('Vcap detectado', file=sys.stdout)

        REDIS_URL = os.environ.get('REDIS_BASE_URL').format(cert_type='required') 

        CELERY_BROKER_URL = os.environ.get('REDIS_BASE_URL').format(cert_type='CERT_REQUIRED') 

    else:

        REDIS_URL = 'redis://'

        CELERY_BROKER_URL = 'redis://localhost:6379/0'


    CELERY_RESULT_BACKEND = CELERY_BROKER_URL
  

—-ОБНОВИТЬ—-

Ошибка, которую выдает мне сельдерей, заключается в следующем, но редко, всего несколько раз я получаю эти ошибки, другие AsyncResult работают нормально:

 AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for'
  

Комментарии:

1. Какую ошибку вы получаете?

2. Обновил сообщение

Ответ №1:

Из моего исследования я обнаружил, что никто этого не делает, и это плохая практика, гораздо более чисто иметь config.py с базовой конфигурацией для тестирования, а затем я создаю antother для своего сервера.

 app.config.from_object('yourapplication.default_settings')
app.config.from_envvar('YOURAPPLICATION_SETTINGS')
  

и добавляя эту вторую строку кода, теперь мне нужно только установить новую переменную env на сервере, и у меня есть 2 чистых файла с ее конфигурационными переменными