idempotencyKey は呼び出し側が任意で指定する文字列で、送信を重複排除の対象にします。同じキーで2回送信すると、
2回目は新しい作業をキューに入れず、1回目が作成したタスクに解決されます。
単発とバッチは意図的に異なります
2つのエンドポイントが異なる唯一の箇所で、つまずきやすいポイントです。results[i].task は既存のタスクなので、タスクの対応付けはそのまま解決されます。
結果と送信を対応付ける
独立した2つのハンドルがあり、両方が必要です。integer
入力配列と位置で1:1に対応します。バッチのレスポンスを送信したタスクと突き合わせるのに使います。
string
送信した値がそのまま返ります。数分後に順不同で届き、元の配列を参照しないWebhookを突き合わせるのに使います。
idempotencyKey を指定しなかった場合、このフィールドは null として返されず、タスクオブジェクトから
省略されます。内部ではタスク自身のuuidをキーとして使い、これは構造上一意なので重複排除は起きません。キーの有効期間
永久保持されるタスクのキーは、完了、失敗、24時間の公開ポーリング期間を過ぎても予約されたままです。 ポーリングが404を返してもキーは解放されません。1回の送信の通信再試行には同じキーを使い、別の実行には 新しい実行キー(例::r1 サフィックスを追加)を使ってください。UUID形式である必要はありません。永久保持が
有効になる前にレガシー履歴へ移されたレコードは、遡ってキーを予約しません。