Các yêu cầu bạn gửi đến các kho dữ liệu có thể thất bại do kết nối kém hoặc các vấn đề khác.Để xử lý lỗi và trả lại tin nhắn với mã lỗi, bọc chức năng lưu trữ dữ liệu trong pcall() .
Tham chiếu mã lỗi
Mã mã | Tên lỗi | Thông báo tin nhắn | Ghi chú | |
---|---|---|---|---|
101 | KeyNameEmpty | Tên chìa khóa không thể trống. | Kiểm tra xem nhập chìa khóa vào chức năng lưu trữ dữ liệu có phải là một chuỗi trống không. | |
102 | KeyNameLimit | Tên chìa khóa vượt quá giới hạn 50 ký tự. | Kiểm tra xem nhập chìa khóa vào chức năng lưu trữ dữ liệu có vượt quá chiều dài 50 không. | |
103 | ValueNotAllowed | Không thể cho phép X trong DataStore. | Một chức năng cập nhật xấu trả giá trị của loại X. | |
104 | CantStoreValue | Không thể lưu X trong DataStore. | Chức năng cập nhật trả giá trị kiểu X không serialize. | |
105 | ValueTooLarge | Giá trị serialize vượt quá giới hạn X. | Nếu bạn đang đặt một giá trị với SetAsync() hoặc UpdateAsync(), chiều dài serialize của giá trị không thể vượt quá kích thước X.Để kiểm tra chiều dài serialize của dữ liệu, sử dụng JSONEncode() . | |
106 | MaxValueInvalid | MaxValue phải là một số lẻ. | Nếu bạn đang truyền một giá trị tối đa đến GetSortedAsync() cho một OrderedDataStore , nó phải là một số lẻ. | |
106 | MinValueInvalid | MinValue phải là một số lẻ. | Nếu bạn đang truyền một giá trị tối thiểu đến GetSortedAsync() cho một OrderedDataStore , nó phải là một số lẻ. | |
106 | PageSizeGreater | PageSize phải nằm trong phạm vi được xác định trước. | Kích thước trang tối thiểu cho một OrderedDataStore là 1. | |
106 | PageSizeLesser | PageSize phải nằm trong phạm vi được xác định trước. | Kích thước trang tối đa cho một OrderedDataStore là 100. | |
107 | MinMaxOrderInvalid | MaxValue phải lớn hơn hoặc bằng MinValue . | Giá trị tối đa phải lớn hơn hoặc bằng giá trị tối thiểu cho GetSortedAsync() . | |
301 | GetAsyncThrottle | GetAsync | GetAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
302 | SetAsyncThrottle | SetAsync | SetAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
303 | IncreAsyncThrottle | IncrementAsync | IncrementAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
304 | UpdateAsyncThrottle | UpdateAsync | UpdateAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
304 | TransformThrottle | UpdateAsync | UpdateAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
305 | GetSortedThrottle | GetSorted | GetSortedAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
306 | RemoveAsyncThrottle | RemoveAsync | RemoveAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại lưu lượng hiện tại. | |
401 | DataModelNoAccess | Yêu cầu thất bại. DataModel không thể truy cập trong khi trải nghiệm đang tắt. | DataModel không được khởi tạo vì trải nghiệm đang bị tắt. | |
402 | LuaWebSrvsNoAccess | Yêu cầu thất bại. LuaWebService không thể truy cập trong khi trải nghiệm đang tắt. | LuaWebService không được khởi tạo vì trải nghiệm đang bị tắt. | |
403 | StudioAccessToApisNotAllowed | Không thể viết vào DataStore từ Studio vì không có quyền truy cập API. | Truy cập API phải được bật để sử dụng Kho dữ liệu trong Studio. | |
404 | InternalError | OrderedDataStore không tồn tại. | Các OrderedDataStore liên quan đến yêu cầu này không được tìm thấy. Đây có thể là dấu hiệu của sự lỗi dữ liệu. Hãy thử lại sau. | |
501 | InternalError | Không thể phân tích phản hồi vì dữ liệu có thể bị hư hỏng. | Máy chủ không thể giải mã phản hồi cho yêu cầu của bạn. Đây có thể là dấu hiệu của sự lỗi dữ liệu. Hãy thử lại sau. | |
502 | RequestRejected | Dịch vụ API từ chối yêu cầu với lỗi X. | Lỗi X xảy ra khi xử lý trên các máy chủ Roblox. Hãy thử lại sau. | |
503 | InternalError | Yêu cầu lưu trữ dữ liệu thành công nhưng khóa không được tìm thấy. | Chìa khóa được yêu cầu không được tìm thấy trong Cửa hàng dữ liệu. Đây có thể là dấu hiệu của sự lỗi dữ liệu. Hãy thử lại sau. | |
504 | InternalError | Yêu cầu Kho dữ liệu thành công nhưng phản hồi không được định dạng đúng. | Máy chủ không thể giải mã phản hồi cho yêu cầu của bạn. Đây có thể là dấu hiệu của sự lỗi dữ liệu. Hãy thử lại sau. | |
505 | InternalError | OrderedDataStore | Máy chủ không thể giải mã lời trả lời cho yêu cầu OrderedDataStore của bạn. Đây có thể là dấu hiệu của sự lỗi dữ liệu. Hãy thử lại sau. | |
509 | OperationNotAllowed | Các hoạt động của Kho dữ liệu bị chặn khi chạy trên RCC Cá nhân để ngăn chặn sự cố xảy ra dữ liệu. | Viết vào Kho dữ liệu bị chặn trên các kênh RCC riêng tư. | |
511 | AttributeSizeTooLarge | Kích thước thuộc tính metadata vượt quá giới hạn X. | Kích thước metadata serialize vượt giới hạn của X. Giá trị X là dinamik. Nếu kích thước thay đổi, giá trị cũng thay đổi. | |
512 | UserIdLimitExceeded | UserID kích thước vượt quá giới hạn X. | Chiều dài của mảng ID người dùng được cung cấp bởi người dùng vượt quá giới hạn của X. | |
513 | AttributeFormatError | Định dạng thuộc tính userId không hợp lệ. | ID người dùng cung cấp không phải là một số. | |
513 | AttributeFormatError | Định dạng thuộc tính metadata không hợp lệ. | Dữ liệu không phải là một bảng. | |
GetVersionAsyncThrottle | GetVersionAsync Yêu cầu bị rơi.Yêu cầu bị hạn chế.: | GetVersionAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu ở tốc độ hiện tại. | ||
GetVersionAtTimeAsyncThrottle | GetVersionAtTimeAsync Yêu cầu bị rơi.Yêu cầu bị hạn chế.: | GetVersionAtTimeAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu ở tốc độ hiện tại. | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync Yêu cầu bị rơi.Yêu cầu bị hạn chế.: | ListDataStoresAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu ở tốc độ hiện tại. | ||
ListKeysAsyncThrottle | ListKeysAsync Yêu cầu bị rơi.Yêu cầu bị hạn chế.: | ListKeysAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu ở tốc độ hiện tại. | ||
ListVersionsAsyncThrottle | ListVersionsAsync Yêu cầu bị rơi.Yêu cầu bị hạn chế.: | ListVersionsAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu ở tốc độ hiện tại. | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync Yêu cầu bị rơi.Yêu cầu bị hạn chế.: | RemoveVersionAsync() yêu cầu đã vượt quá kích cỡ hàng đợi tối đa và Roblox không thể xử lý các yêu cầu ở tốc độ hiện tại. | ||
InvalidTimestamp | Thời gian chính xác phải là dương và không quá mười phút trong tương lai.: | Thời gian cung cấp cho GetVersionAtTimeAsync() không hợp lệ. |
Mã lỗi máy chủ
Tên lỗi | Thông báo tin nhắn | Ghi chú |
---|---|---|
DatastoreThrottled | Tỷ lệ yêu cầu vượt quá tối đa cho phép cho datastore . | Quá nhiều yêu cầu đã được gửi đến một kho dữ liệu duy nhất. |
InternalServerError | Một lỗi máy chủ nội bộ xảy ra. | Lỗi ngẫu nhiên trên các máy chủ Roblox. Hãy thử lại, lý tưởng là với sự quay lại exponential. |
InvalidPlace | Vị trí được cung cấp không hợp lệ. | Không có ID Thiên hà phù hợp cho địa điểm. Hãy thử lại sau. |
InvalidTarget | Mục tiêu được cung cấp không hợp lệ. | Tên khóa Cửa hàng dữ liệu được sắp xếp vượt quá giới hạn 50 ký tự. |
InvalidUniverse | Vũ trụ được cung cấp không hợp lệ. | Không có ID địa điểm phù hợp cho vũ trụ. Hãy thử lại sau. |
InvalidUserIds | Các ID người dùng được cung cấp có định dạng không hợp lệ. | Không thể phân tích ID người dùng. |
KeyThrottled | Tỷ lệ yêu cầu vượt quá tối đa cho phép cho chìa khóa. | Tỷ lệ yêu cầu vượt quá tỷ lệ yêu cầu tối đa cho một chìa khóa duy nhất. |
KeyNotFound | Chìa khóa yêu cầu không tồn tại. | Chìa khóa không tồn tại. |
N/A | Không có trang để tiến lên. | Lỗi này xảy ra khi bạn gọi Pages:AdvanceToNextPageAsync() trên trang cuối cùng. |
Giới hạn
Các mô hình dữ liệu có giới hạn .Nếu một trải nghiệm vượt quá các giới hạn này, dịch vụ tự động giảm bớt sử dụng kho lưu trữ dữ liệu của trải nghiệm và gây ra yêu cầu tương lai được đặt trong một trong các hàng đợi sau:
- Bột set
- Bộ được xếp cài đặt
- Nhận
- Đã xếp hàng lấy
Yêu cầu trong hàng đợi được xử lý theo thứ tự nhận được.Chức năng được gọi tiếp tục cho ra kết quả miễn là yêu cầu của nó vẫn còn chờ đợi.Nếu chính chìa khóa kho dữ liệu bị giới hạn, yêu cầu được đặt vào hàng đợi nhưng bị bỏ qua tạm thời.
Mỗi hàng đợi có giới hạn 30 yêu cầu.Khi đạt đến giới hạn của một hàng đợi, yêu cầu thất bại với một mã lỗi trong phạm vi 301-306, cho thấy rằng các yêu cầu đã bị loại bỏ hoàn toàn.
Giới hạn máy chủ
Mỗi máy chủ được phép một số lượng yêu cầu lưu trữ dữ liệu nhất định dựa trên loại yêu cầu và số lượng người dùng.Sử dụng GetRequestBudgetForRequestType() để xác nhận số lượng yêu cầu lưu trữ dữ liệu mà nơi hiện tại có thể thực hiện.
Loại đánh máycầu | Chức năng | Yêu cầu mỗi phút |
---|---|---|
Nhận | GetAsync() | 60 + người chơi × 10 |
Set (giới hạn được chia sẻ giữa tất cả các chức năng được liệt kê) | Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync()``Class.GlobalDataStore:RemoveAsync()|RemoveAsync() | 60 + người chơi × 10 |
Nhận được sắp xếp | GetSortedAsync() | 5 + người chơi × 2 |
Nhận phiên bản | Class.DataStore:GetVersionAsync()|GetVersionAsync()``Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync() | 5 + người chơi × 2 |
Danh sách | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + người chơi × 2 |
Loại bỏ | RemoveVersionAsync() | 5 + người chơi × 2 |
Giới hạn dữ liệu
Kho dữ liệu giới hạn lượng dữ liệu có thể được sử dụng cho mỗi lần nhập.
Tên kho dữ liệu, tên chìa khóa và phạm vi phải tất cả ở dưới một độ dài nhất định. Sử dụng string.len() để kiểm tra độ dài của chúng.
Dữ liệu (giá trị khóa) cũng được lưu dưới dạng chuỗi, bất kể đánh máyban đầu của nó.Bạn có thể kiểm tra kích thước của dữ liệu với chức năng JSONEncode(), chuyển đổi dữ liệu Luau thành bảng JSON serialize.
Thành phần | Số tối đa của các nhân vật |
---|---|
Tên kho dữ liệu | 50 |
Tên chính | 50 |
Phạm vi | 50 |
Dữ liệu (giá trị khóa) | 4,194,304 mỗi chìa khóa |
Giới hạn metadata
Giới hạn số lượng ký tự trong metadata được xác định bởi người dùng.
Thành phần | Số tối đa của các nhân vật |
---|---|
Tên chính | 50 |
Giá trị | 250 |
Cặp giá trị chìa khóa | 300 |
Giới hạn lưu lượng
Giới hạn lưu lượng cho mỗi phím đảm bảo hiệu suất tối ưu trên các máy chủ Roblox.Mỗi giới hạn áp dụng cho mọi chìa khóa trên tất cả các máy chủ trong trải nghiệm và làm mới theo thời gian.
Roblox kiểm tra cách sử dụng quota liên quan đến chìa khóa trong 60 giây cuối cùng.Nếu việc sử dụng, bao gồm yêu cầu hiện tại, nằm trong giới hạn lưu lượng, yêu cầu được phê duyệt.Nếu việc sử dụng vượt quá giới hạn, yêu cầu bị từ chối.
Loại đánh máycầu | Giới hạn |
---|---|
Đọc | 25 MB mỗi phút |
Viết | 4 MB mỗi phút |
Giới hạn lưu trữ
Hiện tại, không có giới hạn lưu trữ bắt buộc trên các kho dữ liệu.