Django-RQ + Braintree:提交结算
Django-RQ + Braintree: Submit for settlement
我已经阅读了这个 Whosebug 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队列的环境或者worker环境有关?
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)
啊!
我讨厌回答问题的时刻和找到解决方案后的几分钟!
错误出在命令 运行 和 rqworker
. I was using the command python manage.py rqworker --worker-class rq.SimpleWorker
because I had this issue 中,因为我使用了 python 2.7(或其他原因导致此问题)。产生这个问题的命令是 python manage.py rqworker
.
现在升级到 python 3.4,最后一个命令非常有效!
所以,运行 python manage.py rqworker
成功了,没有这样的错误!
我已经阅读了这个 Whosebug 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队列的环境或者worker环境有关?
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)
啊!
我讨厌回答问题的时刻和找到解决方案后的几分钟!
错误出在命令 运行 和 rqworker
. I was using the command python manage.py rqworker --worker-class rq.SimpleWorker
because I had this issue 中,因为我使用了 python 2.7(或其他原因导致此问题)。产生这个问题的命令是 python manage.py rqworker
.
现在升级到 python 3.4,最后一个命令非常有效!
所以,运行 python manage.py rqworker
成功了,没有这样的错误!