Yêu cầu bạn đặt vào dữ liệu có thể bị 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 thông điệp với một mã lỗi, hãy bọc các hàm dữ liệu trong pcall() .
Mã tham chiếu lỗi
Mã lỗi | Tên sai | Tin nhắn lỗi | Ghi chú | |
---|---|---|---|---|
101 | KeyNameEmpty | Tên chìa khóa không thể trống. | Kiểm tra nếu dữ liệu lưu vào chức năng lưu trữ chính là một chuỗi trống. | |
102 | KeyNameLimit | Tên khóa vượt quá giới hạn 50 ký tự. | Kiểm tra xem dữ liệu lưu vào chức năng lưu dữ liệu có dài hơn 50 không. | |
103 | ValueNotAllowed | Không thể cho phép X ở DataStore . | Một chức năng cập nhật xấu đã trả một giá trị kiểu X . | |
104 | CantStoreValue | Không thể lưu X ở DataStore . | Hàm cập nhật đã trả một giá trị kiểu X không được serialize. | |
105 | ValueTooLarge | Giá trị serialize vượt quá giới hạn X. | Nếu bạn đang tạo một giá trị với SetAsync() hoặc UpdateAsync() , kích thước seri của giá trị không thể vượt quá kích thước X . Để kiểm tra kích thư | |
106 | MaxValueInvalid | MaxValue phải là một số tối thiểu. | Nếu bạn đang truyền một giá trị tối đa lên GetSortedAsync() cho một OrderedDataStore, nó phải là một số. | |
106 | MinValueInvalid | MinValue phải là một số tối thiểu. | Nếu bạn đang truyền một giá trị tối thiểu lên GetSortedAsync() cho một OrderedDataStore, nó phải là một số. | |
106 | PageSizeGreater | PageSize phải nằm trong một phạm vi đã định. | Kích thước trang tối thiểu cho một OrderedDataStore là 1. | |
106 | PageSizeLesser | PageSize phải nằm trong một phạm vi đã định. | 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 để GetSortedAsync() . | |
301 | GetAsyncThrottle | GetAsync yêu cầu đã bị bỏ hẻm. Yêu cầu đã bị giảm nhưng hàng đợi đã đầy. | GetAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
302 | SetAsyncThrottle | SetAsync yêu cầu đã bị thả. Yêu cầu đã bị chặn nhưng hàng đợi đã đầy. | SetAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
303 | IncreAsyncThrottle | IncrementAsync yêu cầu đã bị bỏ hẻm. Yêu cầu đã bị giảm nhưng hàng đợi đã đầy. | IncrementAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
304 | UpdateAsyncThrottle | UpdateAsync yêu cầu đã bị bỏ hẻm. Yêu cầu đã bị giảm nhưng hàng đợi đã đầy. | UpdateAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
304 | TransformThrottle | UpdateAsync yêu cầu đã bị bỏ hẻm. Yêu cầu đã bị giảm nhưng hàng đợi đã đầy. | UpdateAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
305 | GetSortedThrottle | GetSorted yêu cầu đã bị thả. Yêu cầu đã bị giảm nhưng hàng đợi đã đầy. | GetSortedAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
306 | RemoveAsyncThrottle | RemoveAsync yêu cầu đã bị bỏ hẻm. Yêu cầu đã bị giảm nhưng hàng đợi đã đầy. | RemoveAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | |
401 | DataModelNoAccess | Yêu cầu không thành công. DataModel không khả dụng trong khi trải nghiệm đang bị 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 bị thất bại. LuaWebService không khả dụng trong khi trải nghiệm đang bị tắt. | LuaWebService chưa được khởi tạo vì trải nghiệm đang bị tắt. | |
403 | StudioAccessToApisNotAllowed | Không thể viết đến DataStore từ Studio vì không thể kết nối đến API. | Cần phải kích hoạt quyền truy cập API để sử dụng Data Stores 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ự hư hỏng dữ liệu. Thử lại sau. | |
501 | InternalError | Không thể phân tích trả lời vì dữ liệu có thể bị hỏng. | Máy chủ không thể phân tích trả lờ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. Thử lại sau. | |
502 | RequestRejected | API Services đã 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 dữ liệu thành công, nhưng không tìm thấy chìa khóa. | Yêu cầu đã tìm thấy trong Data Store. Đây có thể là dấu hiệu của sự hư hỏng dữ liệu. Thử lại sau. | |
504 | InternalError | Yêu cầu lưu trữ dữ liệu thành công nhưng không được biểu tượng đúng cách. | Máy chủ không thể phân tích trả lờ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. Thử lại sau. | |
505 | InternalError | OrderedDataStore yêu cầu thành công nhưng không được biểu tượng đúng cách. | Máy chủ không thể phân tích trả lời cho yêu cầu của bạn OrderedDataStore . Đây có thể là dấu hiệu của sự hư hỏng dữ liệu. Thử lại sau. | |
509 | OperationNotAllowed | Các hoạt động lưu trữ dữ liệu được chặn khi chạy trên một Personal RCC để ngăn chặn sự hỏng hư hỏng dữ liệu có thể xảy ra. | Các ký hiệu dữ liệu được viết bị chặn trên các kênh RCC riêng. | |
511 | AttributeSizeTooLarge | Kích thước của thuộc tính Metadata lớn hơn giới hạn X. | Kích thước metadữ ser hóa vượt quá giới hạn của X. Giá trị X được tạo động. Nếu kích thước thay đổi, giá trị X 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 loạt 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 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 dữ liệu thuộc tính không hợp lệ. | Dữ liệu không phải là bảng. | |
GetVersionAsyncThrottle | GetVersionAsync yêu cầu đã bị bỏ. Yêu cầu đã bị chặn. | GetVersionAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync yêu cầu bị rơi. Yêu cầu đã bị giảm. | ListDataStoresAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | ||
ListKeysAsyncThrottle | ListKeysAsync yêu cầu bị bỏ. Yêu cầu đã bị giảm. | ListKeysAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | ||
ListVersionsAsyncThrottle | ListVersionsAsync yêu cầu bị bỏ. Yêu cầu đã bị giảm. | ListVersionsAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync yêu cầu đã bị bỏ. Yêu cầu đã bị chặn. | RemoveVersionAsync() yêu cầu đã vượt quá kích thước hàng đợi tối đa và Roblox không thể xử lý các yêu cầu tại tốc độ thông qua hiện tại. |
Mã lỗi máy chủ
Tên sai | Tin nhắn lỗi | Ghi chú |
---|---|---|
DatastoreThrottled | Tỷ lệ yêu cầu vượt quá giới hạn cho phép cho datastore . | Quá nhiều yêu cầu đã được gửi đến một Data Store duy nhất. |
InternalServerError | Một lỗi máy chủ nội bộ đã xảy ra. | Lỗi tạm thời trên các máy chủ Roblox. Thử lại, lý tưởng là với hàm số bù trở lại. |
InvalidPlace | Địa điểm cung cấp không hợp lệ. | Không tìm thấy ID Universe tương ứng cho địa điểmnày. Thử lại sau. |
InvalidTarget | Mục tiêu cung cấp không hợp lệ. | Tên của chìa khóa Cửa hàng Dữ liệu đã được đặt hàng vượt quá giới hạn 50 ký tự. |
InvalidUniverse | Vũ trụ đã cung cấp không hợp lệ. | Không tìm thấy ID nơi nào cho vũ trụ. Thử lại sau. |
InvalidUserIds | Các ID người dùng đã cung cấp có 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á giới hạn 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 | Yêu cầu Key không tồn tại. | Chìa khóa không tồn tại. |
N/A | Không có trang để tiến về phía trước. | 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
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 throttle dữ liệu lưu trữ của trải nghiệm và gây ra các yêu cầu tương lai được đặt vào một trong những hàng đợi sau đây:
- Bộ
- Đã đặt cài đặt
- Lấy
- Đã đặt hàng nhận
Yêu cầu trong hàng đợi được xử lý theo thứ tự mà nó được nhận. Chức năng gọi tiếp tục hoạt động cho đến khi yêu cầu của nó vẫn đang được xử lý. Nếu chìa khóa dữ liệu đang bị thắt chặt, yêu cầu sẽ được đặt vào hàng đợi nhưng sẽ bị tạm dừng.
Mỗi hàng đợi có giới hạn 30 yêu cầu. Khi giới hạn của một hàng đợi được đạt đến, các yêu cầu bị 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ị thả hoàn toàn.
Giới hạn máy chủ
Mỗi máy chủ được phép một lượng dữ liệu nhất định yêu cầu các yêu cầu lưu trữ dữ liệu theo 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à
Yêu cầu loại | Hàm | Yêu cầu mỗi phút |
---|---|---|
Lấy | GetAsync() | 60 + số 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() 0> Class.GlobalDataStore:RemoveAsync()|RemoveAsync()0> | 60 + số người chơi × 10 |
Được sắp xếp | GetSortedAsync() | 5 + sốNgười chơi × 2 |
NhậnPhiên bản | GetVersionAsync() | 5 + sốNgười chơi × 2 |
Danh sách | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + sốNgười chơi × 2 |
Loại bỏ | RemoveVersionAsync() | 5 + sốNgười chơi × 2 |
Giới hạn dữ liệu
Các giới hạn dữ liệu lưu trữ cho phép bạn sử dụng bao nhiêu dữ liệu mỗi lần.
Tên, tên chìa khóa và phạm vi của cửa hàng dữ liệu phải được ở dưới một kích thước nhất định. Sử dụng string.len() để kiểm tra độ dài của chúng.
Dữ liệu (giá trị chìa khóa) cũng được lưu như một chuỗi, bất kể đánh máykhởi đầu của nó. Bạn có thể kiểm tra kích thước dữ liệu với chức năng JSONEncode(), chuyển đổi dữ liệu Lua thành một bảng JSON ser hóa.
Thành phần | Số lượng tối đa các ký tự |
---|---|
Tên Cửa hàng Dữ liệu | 50 |
Tên Chìa Khóa | 50 |
Tầm nhìn | 50 |
Dữ liệu (Giá trị chìa 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 dữ liệu đã định.
Thành phần | Số lượng tối đa các ký tự |
---|---|
Tên Chìa Khóa | 50 |
Giá Trị | 250 |
Cặp giá trị chìa khóa | 300 |
Giới hạn lưu lượng
Các giới hạn phù hợp qua các 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 được áp dụng cho mỗi cái khóa trên tất cả các máy chủ trong một trải nghiệm và cập nhật theo thời gian.
Roblox xem xét việc sử dụng quota được liên kết với chìa khóa trong vòng 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 thông qua, yêu cầu được chấp nhận. Nếu việc sử dụng vượt quá giới hạn, yêu cầu sẽ bị từ chối.
Yêu cầu loại | Giới hạn |
---|---|
Đọc | 25 MB mỗi phút |
Viết | 4 MB mỗi phút |