如何解决在 Flask Web App 中刷新 Salesforce 访问令牌
Salesforce 访问令牌和使用这些访问令牌查询 Salesforce 都可以与 simple_salesforce
python 客户端一起正常工作。问题是在 Web 应用程序中刷新这些令牌。我曾尝试使用如下全局变量来执行此操作,但这似乎不是线程安全的,并且难以为其编写单元测试。
sf = SalesforceConnector.connect()
@bp.route("",methods=["GET"])
def index():
global sf
try:
payload = get_salesforce_records(sf)
except Exception as e:
print(e)
sf = SalesforceConnector.connect()
payload = get_salesforce_records(sf)
return jsonify(payload),200
我试图用上面的代码实现的是在加载路由器文件时实例化 salesforce 对象。 SalesforceConnector
是我的类,它只是为 Salesforce 获取一个新令牌,然后使用该访问令牌获取一个 salesforce 对象。如果在 get_salesforce_records
中查询失败,我会重试并将新对象保存在全局变量中。
有没有更好的方法来实现索引功能,以便在访问令牌过期时并行请求流入时不会实例化多个新的salesforce对象?
更新:我已经将令牌刷新的逻辑移到一个类中,该类刷新令牌,然后在发现令牌过期时执行查询。但是由于多个并行请求而发生的并行刷新的核心问题还是一样!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。