sync_task API 调用特定脚本时返回 500 错误

sync_task API 调用特定脚本时返回 500 错误(errno:10000,result: "Unavailable") 问题描述: 我们调用 WPS 的 AirScript 脚本 API 时,偶尔会收到 HTTP 500 错误,返回内容如下: { "errno": 10000, "msg": "", "reason": "", "result": "Unavailable" } 我们观察到的现象: 该问题仅出现在特定一个脚本上,其他脚本通过同一 API 调用均正常。 同一个脚本在 WPS 网页界面手动运行时可以正常执行。 失败是随机的 —— 有时成功,有时失败。 我们尝试了 3 次重试(带指数退避),只能部分缓解,无法彻底解决。 即使单独运行该脚本,问题依然存在。 我们进行了全面测试,确认 Token 和环境配置均正确无误。 问题: errno:10000 配合 result: "Unavailable" 具体代表什么含义?是否有官方文档说明在什么情况下会返回该错误? 通过 sync_task API 执行脚本,与在 WPS 网页界面手动执行,在超时限制(Timeout)方面是否存在差异?具体的超时时间是多少? 当通过 sync_task 执行脚本时,如何获取脚本的完整日志 ?API 响应中是否可以返回这些日志? 针对该类错误,官方推荐的重试策略是什么?1-2 秒的等待时间是否过短?错误响应中是否包含 Retry-After 头?我们在测试中发现,即使连续失败 3 次,后续尝试仍然容易再次失败。 sync_task API 是否存在 Rate Limit 或并发限制?这些限制是针对 Token 还是针对具体脚本?是否对同一脚本在短时间内有调用次数限制?
以色列
浏览 147
收藏
3
分享
3 +1
1
+1
全部评论 1
 
Yotam
您好, 我找到了这个问题的解决方案,希望能帮助到遇到类似问题的朋友。 经过测试后我发现,使用 sync_task 并不适合运行耗时较长的脚本。我找到了一份文档,其中明确区分了两种调用方式: sync_task:同步执行,适用于执行时间一般的场景。 task:异步执行,适用于执行时间较长的场景(会立即返回 task_id,需要通过轮询获取结果)。 在实际使用中,当较重的脚本通过 sync_task 调用时,容易出现 errno:10000("Unavailable")的错误。 我们采用的解决方案如下: 不再使用 sync_task,而是改用 POST /task,立即获取 task_id。 通过 GET /script/task 接口进行轮询,并采用 Exponential Backoff 策略。 这样不仅可以避免 500 错误,还能获取完整的执行日志。 如果您的脚本运行时间较长,建议考虑切换到异步调用方式。 相关文档链接: https://github.com/dsdd1733/api-kdocs/blob/master/AirScript/AirScript-apitoken-api.md 希望对大家有帮助。
   以色列
举报
0
0