데이터 스토어에 대한 요청이 연결성이 낮거나 다른 문제로 실패할 수 있습니다. 오류 코드를 처리하고 데이터 스토어 함수를 pcall() 에 감싼다.
오류 코드 참조
오류 코드 | 오류 이름 | 오류 메시지 | 노트 | |
---|---|---|---|---|
101 | KeyNameEmpty | 키 이름은 비어둘 수 없습니다. | 데이터 저장소 함수에 키가 비어 있는지 확인하십시오. | |
102 | KeyNameLimit | 키 이름이 50자 제한을 초과합니다. | 키가 데이터 저장소 함수에 50개의 길이를 초과하는지 확인하십시오. | |
103 | ValueNotAllowed | X 을 DataStore에 허용할 수 없습니다. | 나쁜 업데이트 함수는 형식의 값 X를 반환했습니다. | |
104 | CantStoreValue | X을(를) DataStore에 저장할 수 없습니다. | 업데이트 함수는 서IAL화되지 않은 값 X를 반환했습니다. | |
105 | ValueTooLarge | 서리얼 값이 X 제한을 초과합니다. | Class.GlobalDataStore:SetAsync()|SetAsync() 또는 UpdateAsync() 값에 값을 설정하는 경우 값의 길이는 X를 초과할 수 없습니다. 데이터의 길이를 확인하려면 1>Class.HttpService:JSONEncode()|JSONEncode()1>를 사용하십 | |
106 | MaxValueInvalid | MaxValue 은 정수여야 합니다. | Class.OrderedDataStore:GetSortedAsync()|GetSortedAsync()에 대한 최대 값을 OrderedDataStore 에 대해 지정하면 정수여야 합니다. | |
106 | MinValueInvalid | MinValue 은 정수여야 합니다. | Class.OrderedDataStore:GetSortedAsync()|GetSortedAsync()에 최소 값을 지정하는 경우 정수여야 합니다. | |
106 | PageSizeGreater | PageSize 는 미리 정의된 범위 내에서 해야 합니다. | Class.OrderedDataStore의 최소 페이지 크기는 1입니다. | |
106 | PageSizeLesser | PageSize 는 미리 정의된 범위 내에서 해야 합니다. | Class.OrderedDataStore의 최대 페이지 크기는 100입니다. | |
107 | MinMaxOrderInvalid | MaxValue 는 MinValue 보다 크거나 같아야 합니다. | 최대 값은 다음과 같을 수 없습니다. GetSortedAsync() 의 최소 값보다 큰 값입니다. | |
301 | GetAsyncThrottle | GetAsync 요청이 취소되었습니다. 요청이 조정되었지만 대기열이 가득 찼습니다. | GetAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
302 | SetAsyncThrottle | SetAsync 요청이 취소되었습니다. 요청이 조정되었지만 대기열이 가득 찼습니다. | SetAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
303 | IncreAsyncThrottle | IncrementAsync 요청이 드롭되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | IncrementAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
304 | UpdateAsyncThrottle | UpdateAsync 요청이 취소되었습니다. 요청이 조정되었지만 대기열이 가득 찼습니다. | UpdateAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
304 | TransformThrottle | UpdateAsync 요청이 취소되었습니다. 요청이 조정되었지만 대기열이 가득 찼습니다. | UpdateAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
305 | GetSortedThrottle | GetSorted 요청이 삭제되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | GetSortedAsync() 요청이 최대 대기 크기를 초과했으므로 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
306 | RemoveAsyncThrottle | RemoveAsync 요청이 삭제되었습니다. 요청이 조정되었지만 대기열이 가득 찼습니다. | RemoveAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | |
401 | DataModelNoAccess | 요청이 실패했습니다. DataModel 은 경험이 종료되는 동안 액세스할 수 없습니다. | DataModel 는 경험이 종료되기 때문에 초기화되지 않습니다. | |
402 | LuaWebSrvsNoAccess | 요청이 실패했습니다. LuaWebService는 경험이 종료되는 동안 액세스할 수 없습니다. | LuaWebService 는 경험이 종료되기 때문에 초기화되지 않습니다. | |
403 | StudioAccessToApisNotAllowed | API 액세스가 사용할 수 없기 때문에 Studio에서는 DataStore에 쓰기가 불가합니다. | Data Stores in Studio를 사용하려면 API 액세스가 활성화되어 있어야 합니다. | |
404 | InternalError | OrderedDataStore 존재하지 않습니다. | 이 요청과 관련된 OrderedDataStore 는 찾을 수 없습니다. 이 오류는 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
501 | InternalError | 데이터가 손상되었기 때문에 응답을 분석할 수 없습니다. | 서버가 요청에 대한 응답을 해석할 수 없습니다. 이것은 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
502 | RequestRejected | API 서비스는 오류 없이 요청을 거부했습니다. X . | Roblox 서버에서 처리하는 동안 오류 X 발생. 나중에 다시 시도하십시오. | |
503 | InternalError | 데이터 저장소 요청이 성공했지만 키가 찾지 못했습니다. | 요청된 키가 데이터 저장소에 없습니다. 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
504 | InternalError | 데이터 저장소 요청이 성공했지만 응답이 올바르게 구성되지 않았습니다. | 서버가 요청에 대한 응답을 해석할 수 없습니다. 이것은 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
505 | InternalError | OrderedDataStore 요청이 성공했지만 응답이 올바르게 구성되지 않았습니다. | 서버는 요청을 OrderedDataStore 로 처리할 수 없었습니다. 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
509 | OperationNotAllowed | 개인 RCC에서 실행하는 동안 데이터 저장 작업이 차단되어 데이터 손상을 방지합니다. | 데이터 저장소 쓰기는 개인 RCC 채널에서 블록됩니다. | |
511 | AttributeSizeTooLarge | 메타데이터 크기가 X 제한을 초과합니다. | serialize 메타데이터 크기가 X의 제한을 초과합니다. 값 X는 동적입니다. 크기가 변경되면 값도 변경됩니다. | |
512 | UserIdLimitExceeded | UserID 크기가 X 제한을 초과합니다. | 사용자가 제공하는 사용자 ID 배열의 길이가 X 의 제한을 초과합니다. | |
513 | AttributeFormatError | 특성 userId 형식이 유효하지 않은. | 제공된 사용자 ID는 숫자가 아닙니다. | |
513 | AttributeFormatError | 특성 메타데이터 형식이 유효하지 않은. | 메타데이터는 테이블이 아닙니다. | |
GetVersionAsyncThrottle | GetVersionAsync 요청이 삭제되었습니다. 요청이 조정되었습니다. | GetVersionAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량에 대해 요청을 처리할 수 없습니다. | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync 요청이 삭제되었습니다. 요청이 조정되었습니다. | ListDataStoresAsync()1> 순위 정렬: 가장 높은 우선 순위1>. | ||
ListKeysAsyncThrottle | ListKeysAsync 요청이 삭제되었습니다. 요청이 조정되었습니다. | ListKeysAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | ||
ListVersionsAsyncThrottle | ListVersionsAsync 요청이 삭제되었습니다. 요청이 조정되었습니다. | ListVersionsAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리할 수 없는 요청을 처리할 수 없습니다. | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync 요청이 삭제되었습니다. 요청이 조정되었습니다. | RemoveVersionAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량에 대해 요청을 처리할 수 없습니다. |
서버 오류 코드
오류 이름 | 오류 메시지 | 노트 |
---|---|---|
DatastoreThrottled | 요청 비율이 datastore의 허용 한도를 초과합니다. | 단일 데이터 저장소에 너무 많은 요청이 전송되었습니다. |
InternalServerError | 내부 서버 오류가 발생했습니다. | Roblox 서버에 가끔 오류가 발생합니다. 이деаль하게는 약수 백오프와 함께 다시 시도하십시오. |
InvalidPlace | 지정된 장소가 유효하지 않은. | 플레이스대해 일치하는 유니버스 ID가 없습니다. 나중에 다시 시도하십시오. |
InvalidTarget | 지정된 대상이 유효하지 않은. | 주문된 데이터 저장소 키 이름이 50자 제한을 초과합니다. |
InvalidUniverse | 제공된 유니버스는 유효하지 않은. | 유니버스에 대한 장소 ID가 일치하지 않습니다. 나중에 다시 시도하십시오. |
InvalidUserIds | 제공된 사용자 ID는 잘못된 형식을 가지고 있습니다. | 사용자 ID를 분석할 수 없습니다. |
KeyThrottled | 요청 비율이 키에 대한 허용 한도를 초과합니다. | 요청 비율이 단일 키에 대한 허용 요청 비율을 초과합니다. |
KeyNotFound | 요청된 키가 없습니다. | 키가 없습니다. |
N/A | 앞으로 이동할 페이지가 없습니다. | 이 오류는 마지막 페이지에서 Pages:AdvanceToNextPageAsync()를 호출할 때 발생합니다. |
제한
데이터 모델에는 제한 이 있습니다. 경험이 이 제한을 초과하면 서비스가 자동으로 경험의 데이터 저장 사용을 제한하고 미래의 요청을 다음 큐 중 하나에 배치합니다.
- 집합
- 주문 설정
- 가져다 가기
- 주문 된 가져
대기열에서 요청은 수신된 순서대로 처리됩니다. 호출된 함수는 요청이 여전히 대기열에 있을 때까지 계속 생성됩니다. 데이터 저장소 키가 제한되면 요청이 대기열에 배치되지만 일시적으로 건너뜁니다.
각 대기열에는 30개의 요청 한도가 있습니다. 대기열의 한도에 도달하면 301-306 범위의 오류 코드가 발생하여 요청이 완전히 삭제된 것을 나타냅니다.
서버 제한
각 서버는 요청 유형과 사용자 수에 따라 특정 수의 데이터 저장소 요청을 허용합니다. GetRequestBudgetForRequestType() 를 사용하여 현재 장소가 할 수 있는 데이터 저장소 요청의 수를 확인하십시오.
요청 유형 | 함수 | 분당 요청 |
---|---|---|
얻기 | GetAsync() | 60 + 플레이어 수 × 10 |
설정 (모든 목록된 함수에 제한 적용) | Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync() 0> Class.GlobalDataStore:RemoveAsync()|RemoveAsync()0> | 60 + 플레이어 수 × 10 |
정렬 받기 | GetSortedAsync() | 5 + numPlayers × 2 |
버전 取得 | GetVersionAsync() | 5 + numPlayers × 2 |
목록을 만들기 | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + numPlayers × 2 |
제거하기 | RemoveVersionAsync() | 5 + numPlayers × 2 |
데이터 제한
데이터 저장소는 각 항목에 사용할 수 있는 데이터의 한도를 제한합니다.
데이터 저장소 이름, 키 이름 및 범위는 모두 특정 문자 길이 아래에 있어야 합니다. 길이를 확인하려면 string.len()를 사용하세요.
데이터(키 값)는 초기 형식에 관계없이 문자열로 저장되지만 JSONEncode() 함수를 사용하여 Lua 데이터를 직렬 JSON 테이블로 변환할 수 있습니다.
구성 요소 | 최대 문자 수 |
---|---|
데이터 저장소 이름 | 50 |
키 이름 | 50 |
범위 | 50 |
데이터(키 값) | 키당 4,194,304 |
메타데이터 제한
사용자 정의 메타데이터에 대한 문자 수 제한.
구성 요소 | 최대 문자 수 |
---|---|
키 이름 | 50 |
값 | 250 |
키 값 쌍 | 300 |
처리량 제한
키 당 처리 속도 제한은 성능이 최적인 Roblox 서버에서 적용됩니다. 각 제한은 모든 서버에 적용되고 경험 내에서 시간이 지남에 따라 업데이트됩니다.
Roblox는 지난 60초 동안 키와 관련된 퀵 사용량을 검토합니다. 현재 요청을 포함한 사용이 통과 한도 내에 있으면 요청이 승인됩니다. 사용이 한도를 초과하면 요청이 거부됩니다.
요청 유형 | 제한 |
---|---|
읽기 | 분당 25MB |
쓰기 | 분당 4MB |