Permintaan yang Anda buat ke toko data dapat gagal karena koneksi yang buruk atau masalah lainnya. Untuk menangani kesalahan dan mengembalikan pesan dengan kode kesalahan, selubung fungsi toko data dalam pcall() .
Referensi Kode Kesalahan
Kode Kesalahan | Nama Kesalahan | Pesan Kesalahan | Catatan | |
---|---|---|---|---|
101 | KeyNameEmpty | Nama kunci tidak boleh kosong. | Periksa apakah input kunci ke fungsi penyimpanan data adalah string kosong. | |
102 | KeyNameLimit | Nama kunci melebihi batas 50 karakter. | Periksa apakah masukan kunci ke fungsi penyimpanan data melebihi panjang 50. | |
103 | ValueNotAllowed | Tidak dapat mengizinkan X di DataStore . | Fungsi update yang buruk mengembalikan nilai jenis X. | |
104 | CantStoreValue | Tidak dapat menyimpan X di DataStore . | Fungsi update menghasilkan nilai jenis X yang tidak serius. | |
105 | ValueTooLarge | Nilai serius melebihi batas X. | Jika Anda menetapkan nilai dengan SetAsync() atau UpdateAsync(), panjang serialisasi nilai tidak boleh melebihi ukuran X. Untuk memeriksa panjang serialisasi data, gunakan 1> Class.HttpService:JSONEncode()|JSONEncode()1> . | |
106 | MaxValueInvalid | MaxValue harus menjadi angka. | Jika Anda menghasilkan nilai maksimum ke GetSortedAsync() untuk an OrderedDataStore, itu harus menjadi angka. | |
106 | MinValueInvalid | MinValue harus menjadi angka. | Jika Anda menghasilkan nilai minimum ke GetSortedAsync() untuk OrderedDataStore, itu harus menjadi angka. | |
106 | PageSizeGreater | PageSize harus berada dalam rentang pra-ditentukan. | Ukuran halaman minimum untuk OrderedDataStore adalah 1. | |
106 | PageSizeLesser | PageSize harus berada dalam rentang pra-ditentukan. | Ukuran halaman maksimum untuk OrderedDataStore adalah 100. | |
107 | MinMaxOrderInvalid | MaxValue harus lebih besar atau sama dengan MinValue . | Nilai maksimum harus lebih besar atau sama dengan nilai minimum untuk GetSortedAsync() . | |
301 | GetAsyncThrottle | GetAsync permintaan dijatuhkan. Permintaan dikurangi tetapi antrian penuh. | Class.GlobalDataStore:GetAsync()|GetAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | |
302 | SetAsyncThrottle | SetAsync permintaan dijatuhkan. Permintaan dikurangi tapi antrian penuh. | Class.GlobalDataStore:SetAsync()|SetAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran maksimum. | |
303 | IncreAsyncThrottle | IncrementAsync permintaan dijatuhkan. Permintaan dikurangi tetapi antrian penuh. | IncrementAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | |
304 | UpdateAsyncThrottle | UpdateAsync permintaan dijatuhkan. Permintaan dikurangi tetapi antrian penuh. | UpdateAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | |
304 | TransformThrottle | UpdateAsync permintaan dijatuhkan. Permintaan dikurangi tetapi antrian penuh. | UpdateAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | |
305 | GetSortedThrottle | GetSorted permintaan dijatuhkan. Permintaan dikurangi tetapi antrian penuh. | GetSortedAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | |
306 | RemoveAsyncThrottle | RemoveAsync permintaan dijatuhkan. Permintaan dikurangi tapi antrian penuh. | Class.GlobalDataStore:RemoveAsync()|RemoveAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | |
401 | DataModelNoAccess | Permintaan gagal. DataModel tidak dapat diakses saat pengalaman dihentikan. | DataModel tidak diinisialisasi karena pengalaman ditutup. | |
402 | LuaWebSrvsNoAccess | Permintaan gagal. LuaWebService tidak dapat diakses saat pengalaman dihentikan. | LuaWebService tidak diinisialisasi karena pengalaman ditutup. | |
403 | StudioAccessToApisNotAllowed | Tidak bisa menulis ke DataStore dari Studio karena akses API tidak diaktifkan. | Akses API harus aktif agar dapat menggunakan Data Tokens di Studio. | |
404 | InternalError | OrderedDataStore tidak ada. | Class.OrderedDataStore yang terkait dengan permintaan ini tidak ditemukan. Ini mungkin tanda kesalahan data. Coba lagi nanti. | |
501 | InternalError | Tidak dapat menganalisis balasan karena data mungkin rusak. | Server tidak dapat permintaanIni mungkin menjadi tanda kerusakan data. Coba lagi nanti. | |
502 | RequestRejected | API Services menolak permintaan dengan kesalahan X . | Kesalahan X terjadi saat memproses di server Roblox. Coba lagi nanti. | |
503 | InternalError | Permintaan penyimpanan data berhasil tetapi kunci tidak ditemukan. | Kunci yang diminta tidak ditemukan di Data Store. Ini mungkin tanda korupsi data. Coba lagi nanti. | |
504 | InternalError | Permintaan Penyimpanan Data berhasil tetapi jawaban tidak dibentuk dengan benar. | Server tidak dapat permintaanIni mungkin menjadi tanda kerusakan data. Coba lagi nanti. | |
505 | InternalError | OrderedDataStore permintaan berhasil tetapi jawaban tidak dibentuk dengan benar. | Server tidak dapat menganalisis respons untuk permintaan OrderedDataStore Anda. Ini mungkin menandai kesalahan data. Coba lagi nanti. | |
509 | OperationNotAllowed | Operasi Toko Data diblokir saat dijalankan di Personal RCC untuk mencegah kemungkinan korupsi data. | Penulisan Data ditulis diblokir di saluran RCC pribadi. | |
511 | AttributeSizeTooLarge | Ukuran属性 metadata melebihi batas X . | Ukuran metadata yang diserIALisasi melebihi batas X.Nilai X dinamis. Jika ukuran berubah, nilai juga berubah. | |
512 | UserIdLimitExceeded | UserID ukuran melebihi batas X. | Panjang user ID yang disediakan oleh pengguna melebihi batas X. | |
513 | AttributeFormatError | Format userId属性 tidak valid. | ID pengguna yang diberikan bukan angka. | |
513 | AttributeFormatError | Format metode data属性 tidak valid. | metadata bukan tabel. | |
GetVersionAsyncThrottle | GetVersionAsync permintaan dijatuhkan. Permintaan dikurangi. | Class.DataStore:GetVersionAsync()|GetVersionAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync permintaan dijatuhkan. Permintaan dikurangi. | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran maksimum. | ||
ListKeysAsyncThrottle | ListKeysAsync permintaan dijatuhkan. Permintaan dikurangi. | ListKeysAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | ||
ListVersionsAsyncThrottle | ListVersionsAsync permintaan dijatuhkan. Permintaan dikurangi. | ListVersionsAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync permintaan dijatuhkan. Permintaan dikurangi. | Class.DataStore:RemoveVersionAsync()|RemoveVersionAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini melalui keluaran. |
Kode Kesalahan Server
Nama Kesalahan | Pesan Kesalahan | Catatan |
---|---|---|
DatastoreThrottled | Tingkat permintaan melebihi batas maksimum untuk datastore . | Terlalu banyak permintaan dikirim ke Data Store tunggal. |
InternalServerError | Terjadi kesalahan server internal. | Kesalahan ringan pada server Roblox. Coba lagi, idealnya dengan backoff eksponensial. |
InvalidPlace | Tempat yang disediakan tidak valid. | Tidak ada ID Universe yang cocok untuk tempat itu. Coba lagi nanti. |
InvalidTarget | Target yang disediakan tidak valid. | Nama toko data yang dipesan melebihi batas 50 karakter. |
InvalidUniverse | Alam semesta yang disediakan tidak valid. | Tidak ada ID Tempat yang cocok untuk alam semesta. Coba lagi nanti. |
InvalidUserIds | ID pengguna yang disediakan memiliki format tidak valid. | Gagal menganalisis ID pengguna. |
KeyThrottled | Tingkat permintaan melebihi batas maksimum untuk kunci. | Tingkat permintaan melebihi tingkat permintaan maksimum yang diizinkan untuk satu unit. |
KeyNotFound | Kunci yang diminta tidak ada. | Kunci tidak ada. |
N/A | Tidak ada halaman untuk maju ke. | Error ini terjadi ketika Anda memanggil Pages:AdvanceToNextPageAsync() di halaman terakhir. |
Membatasi
Model data memiliki batasan . Jika pengalaman melebihi batasan ini, layanan secara otomatis mengurangi penggunaan ruang penyimpanan data pengalaman dan menyebabkan permintaan masa depan dipasang di salah satu antrian berikut:
- Mengatur
- aturdipesan
- Mendapatkan
- Dipesan dapat
Permintaan dalam antrian ditangani dalam urutan yang diterima. Fungsi yang dipesan terus dihasilkan asalkan permintaan masih dalam antrian. Jika kunci penyimpanan data itu sendiri dibatasi, permintaan ditempatkan dalam antrian tetapi dilewati sementara.
Setiap antrian memiliki batas 30 permintaan. Ketika batas antrian dicapai, permintaan gagal dengan kode kesalahan di rentang 301-306, menunjukkan bahwa permintaan telah dijatuhkan sepenuhnya.
Membatasi Server
Setiap server diizinkan beberapa permintaan penyimpanan data berdasarkan jenis permintaan dan jumlah pengguna. Gunakan GetRequestBudgetForRequestType() untuk mengkonfirmasi jumlah permintaan penyimpanan data yang dapat dibuat saat ini.
Jenis Permintaan | Fungsi | Permintaan per Menit |
---|---|---|
Dapatkan | GetAsync() | 60 + nomainPemain × 10 |
Tetapkan (batas dibagikan di antara semua fungsi yang terdaftar) | SetAsync() Class.GlobalDataStore:IncrementAsync()|IncrementAsync() Class.GlobalDataStore:UpdateAsync()|UpdateAsync() 0> Class.GlobalDataStore:RemoveAsync()|RemoveAsync()0> | 60 + nomainPemain × 10 |
Dapatkan Urutkan | GetSortedAsync() | 5 + nomainPemain × 2 |
Dapatkan Versi | GetVersionAsync() | 5 + nomainPemain × 2 |
Daftar | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + nomainPemain × 2 |
Hapus | RemoveVersionAsync() | 5 + nomainPemain × 2 |
Limit Data
Data store batas berapa banyak data yang dapat digunakan per entri.
Nama toko data, nama kunci, dan skala harus semua di bawah panjang karakter tertentu. Gunakan string.len() untuk memeriksa panjangnya.
Data (nilai kunci) juga disimpan sebagai string, terlepas dari ketikawalnya. Anda dapat memeriksa ukuran data dengan fungsi JSONEncode(), yang mengubah data Lua menjadi tabel JSON serius.
Komponen | Jumlah Maksimum Karakter |
---|---|
Nama Toko Data | 50 |
Nama Kunci | 50 |
Penglihatan | 50 |
Data (Nilai Kunci) | 4,194,304 per unit |
Membatasi Metadata
Membatasi jumlah karakter dalam metadata pengguna.
Komponen | Jumlah Maksimum Karakter |
---|---|
Nama Kunci | 50 |
Nilai | 250 |
Pasangan nilai Kunci | 300 |
Membatasi Kinerja
Batas keluaran per-key memastikan bahwa kinerja maksimal di server Roblox. Setiap batas diterapkan untuk setiap kunci di setiap server dalam pengalaman dan diperbarui setiap saat.
Roblox menganalisis penggunaan quota yang terkait dengan kunci selama 60 detik terakhir. Jika penggunaan, termasuk permintaan saat ini, berada di batas jalur, permintaan diterima. Jika penggunaan melebihi batas, permintaan ditolak.
Jenis Permintaan | Membatasi |
---|---|
Baca | 25 MB per menit |
Menulis | 4 MB per menit |