我有一個關于使用 REST API 在 MarkLogic 資料庫中修補檔案的問題。
我有一個用 .NET Core 撰寫的服務,我使用 MarkLogic 作為我的資料存盤。就我而言,我必須修補數千個檔案,如果可能的話,我不想提出數千個請求。更具體地說 - 我必須在 JSON 檔案的某些部分添加一些屬性。遵循本指南:
- REST/PATCH /v1/documents
- REST/POST /v1/檔案
- 部分更新檔案內容或元資料
我知道,使用 PATCH 請求我們一次只能更新一個檔案,所以我嘗試制作這樣的 POST(現在只有一個示例補丁操作)
POST http://host:port/v1/documents HTTP/1.1
Authorization: Basic autorization
Content-Type: multipart/mixed; boundary=BOUNDARY
--BOUNDARY
Content-Type: application/json
Content-Disposition: category=content; attachment; filename=/documents/first_document_to_update.json
X-HTTP-Method-Override: PATCH
{
"patch": [
{
<patch property insert definition>
}
]
}
--BOUNDARY--
但它只是在 Content-Disposition 標頭的 uri 中創建了一個包含 BOUNDARY 內容的檔案。我還嘗試在 POST 請求上直接使用 X-HTTP-Method-Override 標頭,它也沒有成功 - 我得到了
{
"errorResponse": {
"statusCode": 400,
"status": "Bad Request",
"messageCode": "REST-REQUIREDPARAM",
"message": "REST-REQUIREDPARAM: (err:FOER0000) Required parameter: uri"
}
}
所以我的結論是不可能使用一個 POST 請求對多個檔案進行補丁更新,對嗎?或者我錯過了一些重要的東西?
MarkLogic 版本:10
uj5u.com熱心網友回復:
為什么不提出數千個請求?
如果您以多執行緒方式執行此操作,則可以完成更多作業,而不必擔心大量事務超時或超出限制并出錯。您可以將負載分散到整個集群,而不是僅使用一個節點來完成所有作業。
即使您知道如何一次性完成多個任務,我也建議您使用許多小請求進行多執行緒處理,類似于CoRB作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504339.html
