久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java - web端百度網(wǎng)盤的一個操作為什么要分兩次請求服務(wù)器, 有什么好處嗎

瀏覽:167日期:2022-09-28 14:35:23

問題描述

以 文件重命名 為例:

當(dāng)完成重命名操作提交會到這個地址 https://pan.baidu.com/api/filemanager

返回如下結(jié)果

{ 'errno': 0, 'info': [], 'request_id': 88137407060055336, 'taskid': 307843054247316}

可以聯(lián)想到在server端建立了一個task, 并返回了taskid讓客戶端后續(xù)取狀態(tài)來更新ui

客戶端輪訓(xùn)服務(wù)器的接口 https://pan.baidu.com/share/taskquery 來獲取狀態(tài), 1秒一次請求, 服務(wù)器端返回結(jié)果如下: 分幾種情況我總結(jié)了一下

#進行中的返回值{ 'errno': 0, 'request_id': 88137707954758994, 'task_errno': 0, 'status': 'pending'}#進行中{ 'errno': 0, 'request_id': 88137707954758994, 'task_errno': 0, 'status': 'running'}#操作成功的返回值{ 'errno': 0, 'request_id': 88138584419582326, 'task_errno': 0, 'status': 'success', 'list': [ { 'from': '/test1/我的照片', 'to': '/test1/我的照片2' } ], 'total': 1}

當(dāng) status 為success時候, 則輪詢結(jié)束, 更新UI元素

問題: 直接訪問重命名接口不行嗎? 為什么要這么設(shè)計, 好處是什么?

問題解答

回答1:

你已經(jīng)說的很清楚了啊,還有什么不明白的?

第一次就是向服務(wù)器發(fā)起改名申請。服務(wù)器就開始任務(wù)。后面的輪詢都是在查詢?nèi)蝿?wù)是否完成,完成了前端做相應(yīng)操作,萬一失敗了,前端還要做回滾操作。

回答2:

猜一下原因:極端情況下, 操作可能會耗時很久, 無法立即返回. 在操作完成的時候, socket鏈接可能已經(jīng)斷開, 無法獲取到最終的結(jié)果. 設(shè)計成任務(wù)隊列的方式, 能保證客戶端獲取到最終的結(jié)果.

回答3:

除了上面的一些考慮,可能還有一個很重要的原因,那就是并發(fā)壓力。做成異步,能很好解決并發(fā)

標(biāo)簽: 百度
主站蜘蛛池模板: 吉水县| 锡林浩特市| 托里县| 夏邑县| 万年县| 南丹县| 社旗县| 汝阳县| 巢湖市| 武平县| 木兰县| 调兵山市| 富阳市| 石柱| 揭东县| 锡林郭勒盟| 突泉县| 华蓥市| 新建县| 南雄市| 沽源县| 吉水县| 安庆市| 瑞丽市| 安龙县| 皮山县| 三江| 邢台县| 垦利县| 横峰县| 靖江市| 平安县| 尉犁县| 贡嘎县| 蓬溪县| 政和县| 九寨沟县| 基隆市| 南乐县| 平原县| 高清|