Docusignapi DocuSign API响应速度慢问题,

Docusignapi DocuSign API响应速度慢问题,,docusignapi,Docusignapi,我试图使用docusignjavaapi更新信封文档的内容,但是DocuSign使用相同的参数在4到38秒范围内响应同一信封的请求 例如,一次需要5秒,第二次或第三次API调用可能需要35秒 我使用这个端点PUT/v2/accounts/{accountId}/envelopes/{envelopeId}/documents,并在requestBody中使用包含documentBase64内容的嵌套文档列表的EnvelopeDefinition 此外,参数apply\u document\u字段

我试图使用docusignjavaapi更新信封文档的内容,但是DocuSign使用相同的参数在4到38秒范围内响应同一信封的请求

例如,一次需要5秒,第二次或第三次API调用可能需要35秒

我使用这个端点
PUT/v2/accounts/{accountId}/envelopes/{envelopeId}/documents
,并在requestBody中使用包含documentBase64内容的嵌套文档列表的EnvelopeDefinition

此外,参数
apply\u document\u字段
persist\u选项卡
设置为
true

DocuSign Java客户端版本为“2.9.0”

我试着在不同的环境和不同的地方(网络)运行我的代码,但我不明白为什么这个端点的执行时间会有如此大的差异

也许有人遇到了这样的问题,可以提示我一些我错过的设置或我没有通过的参数

对于我们的项目来说,持续执行时间少于30秒是至关重要的。 我感谢你的任何建议。谢谢

另外,我只对上面提到的端点有问题

其他端点如:

PUT/v2/accounts/{accountId}/envelopes/{envelopeId}/recipientId}/tabs
, 或
ET/v2/accounts/{accountId}/envelopes/{envelopeId}/recipientId}/tabs
,或者其他一些内容或多或少同时执行

在github上复制:

在DocuSign系统中添加(或更新)文档是一项艰巨的工作,其中包括以下(及更多):

  • 如果文档尚未为pdf格式,则会将其转换为pdf
  • pdf被“展平”以删除pdf中的任何无关程序
  • 对pdf进行分析和更新,以添加适合文档和信封的选项卡和选项卡值
  • 上面的大部分工作都是在特定文档的专用沙箱实例中完成的,以消除文档导致安全问题的任何可能性。(请记住,所有类型的文档文件都是计算机病毒的主要载体。)
  • 将文档存储在多个冗余、地理位置不同的文件存储系统上,以提供极高的数据存储保证
归根结底,上述工作需要时间。所用的时间也会随文档大小而变化。转换步骤也需要很长时间

如果同一组文档更新所需的时间不同,这可能是因为系统负载,也可能是因为我们在改进上述处理流程时进行了大量A/B测试。-我们有积极的工程项目来改善上述所有方面

帮助它走得更快(或似乎走得更快) 如果您的DocuSign应用程序发送的文档文件超过了几MB,那么您可能希望转换为以二进制格式而不是Base64格式发送文档。这是一个如何使用的示例

但真正的问题是,如果你的应用程序正在添加文档,而一个人正在摆弄他们的拇指。如果是这种情况,则:

  • 一次更新一个文档,并向用户提供状态:“上载文档1/3…完成。上载文档2/3…完成。等等”
  • 不要阻塞主线程。例如,允许用户继续执行其他任务,并让文档在后台更新
  • 如果用户需要等待上传完成,请向他们提供忙指示灯和倒计时

    倒计时:对于我的应用程序,我的测试显示了最长时间。(你的情况是35秒)。然后我制作了一个更长时间的javascript倒计时。并每秒更新两到三次计数,以加快速度

    例如,对于35秒的最大延迟,计划可能需要两倍的时间,70秒。然后制作一个计数器,从150开始,每秒减少两次。结果,作业将始终在计数器达到0之前完成。用户会感到“高兴”,因为他们看到正在取得进展(计数器正在减少),并且在达到0之前完成(“它完成得很早!”)

    倒计时时间(比忙碌的指示器更重要)是一个古老的魔术师把戏,将用户的注意力从真实动作转移到其他动作(倒计时)。它工作得很好。参考文献:


提高传输速度的一种方法是使用二进制传输而不是base64编码。您想试试吗?二进制传输仅适用于POST请求(信封创建),但我不需要创建新的,我需要更新现有信封中的文档。欢迎使用StackOverflow!请检查(接受)您的问题的最佳答案。请将您阅读的所有有用答案(包括您的问题和其他问题)投票表决。是的,你可以向上投票并检查一个好的答案!谢谢你的解释。我们也考虑过旋转器,但这是我们最后的选择。关于二进制格式,正如我上面回答的,只有当你创建一个信封时才有可能,但我们不需要一个新的信封,我们需要在现有的信封中更新文档,但是PUT请求没有这样的选项。我很确定你可以为我们所有的通话发送二进制文档。但考虑到目前的互联网速度,传输时间的减少通常不会太多(除非你有真正大的文档)。不,两个文件的摘要大小都是1MB。我试图编辑您为二进制发送提供的一个示例,我将POST替换为PUT,并添加了/{envelopeId}(这里我得到的链接与API上的链接相同“/v2/accounts/{accountId}/envelopes/{envelopeId}”),但我得到了一个错误,如“不正确的数据格式”或“不正确的接受数据格式”,记不清了,一般来说,它不起作用。