"Masalah", seperti apa adanya, ada di sisi server: klien telah membuat permintaan yang bagus, tetapi server tidak dapat memenuhinya. Jadi saya cenderung ke "Server Error", kode status 5xx.
Quoth RFC 7231 (standar HTTP saat ini, penekanan ditambahkan):
Kelas 5xx (Kesalahan Server) kode status menunjukkan bahwa server sadar bahwa ia telah melakukan kesalahan atau tidak mampu melakukan metode yang diminta . Kecuali ketika menanggapi permintaan HEAD, server HARUS mengirim representasi yang berisi penjelasan tentang situasi kesalahan, dan apakah itu kondisi sementara atau permanen.
Catatan
- "salah atau tidak mampu melakukan permintaan": terlepas dari judul "Kesalahan Server", mereka bukan hanya untuk kesalahan server.
- " sementara atau permanen": kode-kode ini cocok untuk sumber daya yang sementara tidak tersedia, seperti milik Anda.
Dari kode yang tersedia, saya akan mengatakan 503, "Layanan Tidak Tersedia" adalah yang paling cocok:
Kode status 503 (Layanan Tidak Tersedia) menunjukkan bahwa server saat ini tidak dapat menangani permintaan karena kelebihan sementara atau pemeliharaan terjadwal, yang kemungkinan akan dikurangi setelah beberapa penundaan. Server MUNGKIN mengirimkan bidang Coba Lagi-Setelah header ... untuk menyarankan jumlah waktu yang sesuai bagi klien untuk menunggu sebelum mencoba kembali permintaan.
catatan:
- "kemungkinan akan dikurangi setelah beberapa penundaan": berlaku untuk kasus Anda.
- "temporary overload": tidak berlaku untuk kasus Anda. Tapi, bisa diperdebatkan, apakah server Anda jauh lebih cepat, pemrosesan batch akan sudah dilakukan ketika klien mengajukan permintaan, sehingga merupakan semacam "overload": klien meminta sumber daya lebih cepat dari server dapat membuat mereka tersedia.
- Coba lagi cocok untuk layanan Anda, jadi balasan Anda harus menyertakan a
Retry-After
nilai. Anda bisa memberikan nilai perkiraan waktu penyelesaian untuk eksekusi selanjutnya dari proses batch, atau interval eksekusi dari proses batch.
Namun, mendefinisikan kode status 5xx Anda sendiri (591) diizinkan , akan memiliki semantik yang salah:
klien HARUS memahami kelas kode status apa pun, seperti yang ditunjukkan oleh digit pertama, dan memperlakukan kode status yang tidak dikenali sebagai setara dengan kode status x00 kelas itu
Klien akan memperlakukan kode status Anda sendiri sebagai 500, "Kesalahan Server Internal" , yang tidak benar.