2017-02-09 28 views
0

Я прочитал этот stackoverflow Q&A, но это не сработало.Django-RQ + Braintree: Отправить для расчета

В моем сценарии я нажимаю функцию (submit_transaction_for_settlement(transaction_id)) в очередь redis, используя отличный пакет django-rq. Задача этой функции - отправить транзакцию для расчета.

В песочнице, всякий раз, когда эта функция выполняется, я продолжаю получать ту же ошибку: AttributeError: type object 'Configuration' has no attribute 'environment'.

Я пробовал agf's proposal около instantiate a new gateway for each transaction внутри моей функции, но это не сработало!

Возможно, это имеет какое-то отношение к окружению очереди redis или рабочей среды?

def submit_transaction_for_settlement(transaction_id): 
    from braintree import Configuration, BraintreeGateway 

    config = Configuration(environment=settings.BRAINTREE_ENVIRONMENT, merchant_id=settings.BRAINTREE_MERCHANT_ID, 
            public_key=settings.BRAINTREE_PUBLIC_KEY, private_key=settings.BRAINTREE_PRIVATE_KEY) 
    gateway = BraintreeGateway(config=config) 
    result = gateway.transaction.submit_for_settlement(transaction_id) 

ответ

0

Ahrg!

Ненавижу моменты, когда я отвечаю на вопрос и минуты после того, как я нахожу решение!

Ошибка была в команде rqworker. Я использовал команду python manage.py rqworker --worker-class rq.SimpleWorker, потому что у меня был this issue, потому что я использовал python 2.7 (или что-то еще вызвало эту проблему). Команда создала эту проблему: python manage.py rqworker.

Обновление до python 3.4, последняя команда работает как шарм! Итак, бег python manage.py rqworker сделал трюк и никаких таких ошибок!