0

我在使用 python 的 simple_salesforce 库的批量 api 插入记录时收到“ReadTimeout: HTTPSConnectionPool(host=', port=443): Read timed out. (read timeout=None)”。我没有设置任何超时限制,我正在尝试插入大约 3M 条记录。我也尝试插入小块,但它有同样的问题。如果你们中的任何人遇到过任何此类问题,请告诉我。

我的代码:

from simple_salesforce import Salesforce, SalesforceLogin

sf = Salesforce(username=    ''    
                ,password=  ''                        
                ,security_token= '')


bulk_data = []
for row in <data_to_be_inserted>.itertuples():
  d = row._asdict()
  del d['Index']
  bulk_data.append(d)

sf.bulk.<Custom_Object_Name>.insert(bulk_data)
4

1 回答 1

0

是的,尝试增加请求会话的超时时间。

simple_salesforce 包在后台使用请求。不幸的是, simple_salesforce 似乎没有公开该timeout参数。

值得庆幸的是,它确实允许您自定义会话并将其传递给Salesforce()构造函数。

以下是我在网上找到的两种破解会话的方法:

第三和第四:

  • Salesforce 对象有一个“restful”方法,可以进行任意 API 调用。换句话说,您可以使用例如Bulk API 2.0自行开发
  • 然而,一旦你做到了这一点,也许你想直接使用Requests库进行 API 调用?这是一个很棒的库,你不会遇到 simple_salesforce 的限制。

我很想弄错timeout。如果有人知道从 simple_salesforce 设置它的方法,我会全神贯注。

于 2020-08-09T19:09:37.660 回答