Curlは応答を返さず、`wait = x秒`を待ちません。

Curlは応答を返さず、`wait = x秒`を待ちません。

非同期サービスの呼び出し中に応答するのに約80秒かかります。私は走る:

curl -v -X POST https://hostname.com/service/v2/predict \
  -H 'x-api-key: somekey' \
  -H 'x-request-id: longfiles' \
  -H "Authorization: Bearer dfv651df8fdvd" \
  -H 'Prefer: respond-async, wait=200' \
  -F 'contentAnalyzerRequests={"inputtest": "this is a test"}
  -F infile=@/mnt/file/stream-01865caa-b2e0-40e4-b298-1502fcc65045.json

コマンドが指定されましたが、wait=200約60秒後にカールが返されます。サービスが応答するのに約80秒かかるため、何も応答しません(ただし、使用すると応答を受け取りますwait=1000)。なぜ?


カールクエリ出力-v

> Prefer: respond-async, wait=200
> Content-Length: 19271573
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------5873f0b92dd68547
>
< HTTP/1.1 100 Continue
< HTTP/1.1 202 Accepted
< Server: openresty
< Date: Fri, 07 Oct 2022 21:55:33 GMT
< Content-Length: 0
< Connection: keep-alive
< x-request-id: longfiles
< vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
< location: https://hostname.com/service/v2/status/longfiles
< retry-after: 1
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: Authorization,Content-Type,X-Api-Key,User-Agent,If-Modified-Since,Prefer,location,x-transaction-id,retry-after,cache-control
< Access-Control-Allow-Methods: GET, POST, PUT ,DELETE, OPTIONS,PATCH
< Access-Control-Expose-Headers: location, retry-after, x-request-id, x-transaction-id, cache-control
< Access-Control-Max-Age: 86400
<
* Connection #0 to host hostname.com left intact

ベストアンサー1

HTTP応答HTTP/1.1 202 Accepted 表現する処理要求は承認されましたが、処理はまだ完了していません。

鍵は次のとおりです。

< location: https://hostname.com/service/v2/status/longfiles
< retry-after: 1

これは、出力が次のようになることを意味します。https://hostname.com/service/v2/status/longfiles処理が完了したら。retry-after: 1つまり、1秒あたり最大1回まで位置表示を再試行できます。

コマンドはwait = 200を指定しますが、カールは約60秒後に返されます。

サービスからHTTP 202 Accepted応答を送信するには60秒のタイムアウトがある可能性があります。

通貨計画フローチャート:

ここに画像の説明を入力してください。

おすすめ記事