问题描述
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 (将#修改为@)