Django-RQ + Braintree:提交结算

时间:2017-02-09 20:43:24

标签: django braintree python-rq django-rq

我已经读过这个stackoverflow Q&A但是我的情况并没有起作用。

在我的场景中,我使用优秀的包django-rq将函数(submit_transaction_for_settlement(transaction_id))推送到redis队列。此功能的作用是提交结算交易。

在沙箱中,无论何时执行此功能,我都会收到同样的错误: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)

1 个答案:

答案 0 :(得分: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可以解决问题,而且没有错误!