คำขอที่คุณส่งไปยังที่เก็บข้อมูลอาจล้มเหลวเนื่องจากการเชื่อมต่อไม่ดีหรือปัญหาอื่นเพื่อจัดการข้อผิดพลาดและส่งข้อความกลับพร้อมรหัสข้อผิดพลาด ให้ห่อฟังก์ชันคลังข้อมูลใน pcall()
อ้างอิงรหัสข้อผิดพลาด
รหัสข้อผิดพลาด | ชื่อข้อผิดพลาด | ข้อความข้อผิดพลาด | บันทึก | |
---|---|---|---|---|
101 | KeyNameEmpty | ชื่อกุญแจไม่สามารถว่างเปล่าได้ | ตรวจสอบว่าการใส่คีย์เข้าไปในฟังก์ชันเก็บข้อมูลมีเป็นข้อความว่างเปล่าหรือไม่ | |
102 | KeyNameLimit | ชื่อกุญแจเกินขีดจํากัดตัวอักษร 50 ตัว | ตรวจสอบว่าการใส่คีย์เข้าไปในฟังก์ชันของคลังข้อมูลเกินความยาว 50 หรือไม่ | |
103 | ValueNotAllowed | ไม่สามารถอนุญาต X ใน DataStore ได้ | ฟังก์ชันอัปเดตที่ไม่ดีส่งค่าประเภท X กลับ | |
104 | CantStoreValue | ไม่สามารถเก็บ X ใน DataStore ได้ | ฟังก์ชันอัปเดตส่งค่าประเภท X ที่ไม่ได้เซริฟิก | |
105 | ValueTooLarge | ค่าที่เขียนซ้ำเกินขีดจํากัด X | หากคุณกำลังตั้งค่าค่าด้วย SetAsync() หรือ UpdateAsync() ความยาวของค่าที่เข้ารหัสไม่สามารถเกินขนาด X ได้เพื่อตรวจสอบความยาวของข้อมูลที่เข้ารหัสให้ใช้ JSONEncode() | |
106 | MaxValueInvalid | MaxValue ต้องเป็นจํานวนเต็ม | หากคุณส่งค่าสูงสุดไปยัง GetSortedAsync() สําหรับ OrderedDataStore คุณต้องเป็นจํานวนเต็ม | |
106 | MinValueInvalid | MinValue ต้องเป็นจํานวนเต็ม | หากคุณส่งค่าขั้นต่ำไปยัง GetSortedAsync() สําหรับ OrderedDataStore คุณต้องเป็นจํานวนเต็ม | |
106 | PageSizeGreater | PageSize ต้องอยู่ภายในช่วงที่กําหนดไว้ล่วงหน้า | ขนาดหน้าขั้นต่ำสำหรับ OrderedDataStore คือ 1 | |
106 | PageSizeLesser | PageSize ต้องอยู่ภายในช่วงที่กําหนดไว้ล่วงหน้า | ขนาดหน้าสูงสุดสำหรับ 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 | ไม่สามารถเขียนไปที่ DataStore จาก Studio ได้เพราะการเข้าถึง API ไม่ได้เปิดใช้งาน | การเข้าถึง API ต้องเปิดใช้งานเพื่อใช้ Data Stores ใน Studio | |
404 | InternalError | OrderedDataStore ไม่มีอยู่ | ไม่พบ OrderedDataStore ที่เกี่ยวข้องกับคำขอนี้ อาจเป็นสัญญาณของการทําลายข้อมูล ลองอีกครั้งในภายหลัง | |
501 | InternalError | ไม่สามารถแยกวตอบสนองได้เพราะข้อมูลอาจเสียหาย | เซิร์ฟเวอร์ไม่สามารถแยกวิเคราะห์คำตอบสำหรับคำขอของคุณได้ อาจเป็นสัญญาณของการทําลายข้อมูล ลองอีกครั้งในภายหลัง | |
502 | RequestRejected | บริการ API ปฏิเสธคำขอด้วยข้อผิดพลาด X | ข้อผิดพลาด X เกิดขึ้นเมื่อประมวลผลบนเซิร์ฟเวอร์ Roblox โปรดลองอีกครั้งในภายหลัง | |
503 | InternalError | คำขอเก็บข้อมูลประสบความสำเร็จ แต่ไม่พบกุญแจ | ไม่พบคีย์ที่ร้องขอ อาจเป็นสัญญาณของการทําลายข้อมูล ลองอีกครั้งในภายหลัง | |
504 | InternalError | คำขอร้านข้อมูลสําเร็จ แต่การตอบไม่ถูกรูปแบบอย่างถูกต้อง | เซิร์ฟเวอร์ไม่สามารถแยกวิเคราะห์คำตอบสำหรับคำขอของคุณได้ อาจเป็นสัญญาณของการทําลายข้อมูล ลองอีกครั้งในภายหลัง | |
505 | InternalError | OrderedDataStore คำขอสําเร็จ แต่การตอบไม่ถูกรูปแบบ | เซิร์ฟเวอร์ไม่สามารถแยกการตอบสนองต่อคำขอ OrderedDataStore ของคุณได้ อาจเป็นสัญญาณของการทําลายข้อมูล ลองอีกครั้งในภายหลัง | |
509 | OperationNotAllowed | การดำเนินการของคลังข้อมูลถูกบล็อกในขณะที่ทำงานบน RCC ส่วนตัวเพื่อป้องกันการบีบอัดข้อมูลที่เป็นไปได้ | การเขียนข้อมูลไปยังร้านข้อมูลถูกบล็อกบนช่อง RCC ส่วนตัว | |
511 | AttributeSizeTooLarge | ขนาดคุณสมบัติเมทาดาตาส่วนเกินขีดจํากัด X | ขนาดข้อมูลที่เข้ารหัสเกินขีดจำกัดของ X ค่า X เป็นแบบไดนามิก หากขนาดเปลี่ยนแปลง ค่าก็เปลี่ยนแปลงเช่นกัน | |
512 | UserIdLimitExceeded | UserID ขนาดเกินขีดจํากัด X | ความยาวของแอร์ราย ID ผู้ใช้ที่ให้โดยผู้ใช้เกินขีดจํากัดของ X | |
513 | AttributeFormatError | รูปแบบคุณสมบัติ userId ไม่ถูกต้อง | รหัสผู้ใช้ที่ให้ไม่ใช่ตัวเลข | |
513 | AttributeFormatError | รูปแบบเมทาดาตาของคุณสมบัติไม่ถูกต้อง | เมทาดาต้าไม่ใช่ตาราง | |
GetVersionAsyncThrottle | GetVersionAsync คำขอถูกทิ้งคำขอถูกจํากัด: | GetVersionAsync() คำขอเกินขนาดคิวสูงสุดและ Roblox ไม่สามารถประมวลผลคำขอได้ในปัจจุบันที่อัตราการผ่านผ่าน | ||
GetVersionAtTimeAsyncThrottle | GetVersionAtTimeAsync คำขอถูกทิ้งคำขอถูกจํากัด: | GetVersionAtTimeAsync() คำขอเกินขนาดคิวสูงสุดและ Roblox ไม่สามารถประมวลผลคำขอได้ในปัจจุบันที่อัตราการผ่านผ่าน | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync คำขอถูกทิ้งคำขอถูกจํากัด: | ListDataStoresAsync() คำขอเกินขนาดคิวสูงสุดและ Roblox ไม่สามารถประมวลผลคำขอได้ในปัจจุบันที่อัตราการผ่านผ่าน | ||
ListKeysAsyncThrottle | ListKeysAsync คำขอถูกทิ้งคำขอถูกจํากัด: | ListKeysAsync() คำขอเกินขนาดคิวสูงสุดและ Roblox ไม่สามารถประมวลผลคำขอได้ในปัจจุบันที่อัตราการผ่านผ่าน | ||
ListVersionsAsyncThrottle | ListVersionsAsync คำขอถูกทิ้งคำขอถูกจํากัด: | ListVersionsAsync() คำขอเกินขนาดคิวสูงสุดและ Roblox ไม่สามารถประมวลผลคำขอได้ในปัจจุบันที่อัตราการผ่านผ่าน | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync คำขอถูกทิ้งคำขอถูกจํากัด: | RemoveVersionAsync() คำขอเกินขนาดคิวสูงสุดและ Roblox ไม่สามารถประมวลผลคำขอได้ในปัจจุบันที่อัตราการผ่านผ่าน | ||
InvalidTimestamp | เวลาที่เกิดต้องเป็นบวกและไม่เกินสิบนาทีในอนาคต: | เวลาที่ให้ไปยัง GetVersionAtTimeAsync() ไม่ถูกต้อง |
รหัสข้อผิดพลาดเซิร์ฟเวอร์
ชื่อข้อผิดพลาด | ข้อความข้อผิดพลาด | บันทึก |
---|---|---|
DatastoreThrottled | อัตราคำขอเกินขีดจำกัดสูงสุดที่อนุญาตสำหรับ datastore | ส่งคำขอมากเกินไปไปยังคลังข้อมูลเดียว |
InternalServerError | เกิดข้อผิดพลาดภายในเซิร์ฟเวอร์ | ข้อผิดพลาดบางครั้งบนเซิร์ฟเวอร์ Roblox ลองอีกครั้ง, โดยเฉพาะอย่างยิ่งด้วยการยกเลิกทวีคูณ |
InvalidPlace | สถานที่ที่ให้ไว้ไม่ถูกต้อง | ไม่มี ID จักรวาลที่ตรงกันสำหรับสถานที่ ลองอีกครั้งในภายหลัง |
InvalidTarget | เป้าหมายที่ให้มาไม่ถูกต้อง | ชื่อกุญแจของคลังข้อมูลที่สั่งซื้อเกินขีดจํากัดตัวอักษร 50 ตัว |
InvalidUniverse | จักรวาลที่ให้มาไม่ถูกต้อง | ไม่มีรหัสสถานที่ที่ตรงกันสำหรับจักรวาล ลองอีกครั้งในภายหลัง |
InvalidUserIds | รหัสผู้ใช้ที่ให้มามีรูปแบบไม่ถูกต้อง | ไม่สามารถแยกรหัสผู้ใช้ได้ |
KeyThrottled | อัตราคำขอเกินขีดจํากัดสูงสุดที่อนุญาตสําหรับกุญแจ | อัตราคำขอเกินอัตราคำขอสูงสุดที่อนุญาตสำหรับคีย์เดียว |
KeyNotFound | กุญแจที่ร้องขอไม่มีอยู่ | กุญแจไม่มีอยู่ |
N/A | ไม่มีหน้าที่จะไปต่อได้ | ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณเรียก Pages:AdvanceToNextPageAsync() บนหน้าสุดท้าย |
ข้อจํากัด
โมเดลข้อมูลมี ข้อจํากัด หากประสบการณ์เกินขีดจํากัดเหล่านี้บริการจะลดการใช้พื้นที่จัดเก็บข้อมูลประสบการณ์โดยอัตโนมัติและทําให้คําขอในอนาคตถูกวางในคิวต่อไปนี้:
- ตั้ง
- ตั้งค่า
- รับ
- สั่งซื้อได้
คำขอในคิวจะได้รับการจัดการตามลําดับที่ได้รับฟังก์ชันที่เรียกยังคงให้ผลจนกว่าคำขอของมันจะยังคงรออยู่หากกุญแจคลังข้อมูลถูกจํากัดเอง คําขอจะถูกวางในคิว แต่ถูกข้ามชั่วคราว
คิวแต่ละคิวมีขีดจํากัด 30 คําขอเมื่อถึงขีดจํากัดของคิวแล้ว คําขอจะล้มเหลวด้วยรหัสข้อผิดพลาดในช่วง 301-306 ซึ่งบ่งชี้ว่าคําขอถูกทิ้งทั้งหมด
ขีดจํากัดเซิร์ฟเวอร์
แต่ละเซิร์ฟเวอร์สามารถรับคำขอเก็บข้อมูลได้จํานวนหนึ่งตามประเภทคําขอและจํานวนผู้ใช้ใช้ GetRequestBudgetForRequestType() เพื่อยืนยันจํานวนคําขอเก็บข้อมูลที่สถานที่ปัจจุบันสามารถทําได้
พิมพ์ | ฟังก์ชัน | คำขอต่อนาที |
---|---|---|
รับ | GetAsync() | 60 + ผู้เล่น num × 10 |
ตั้งค่า (ขีดจํากัดจะถูกแบ่งปันระหว่างฟังก์ชันทั้งหมดที่ระบุ) | Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync()``Class.GlobalDataStore:RemoveAsync()|RemoveAsync() | 60 + ผู้เล่น num × 10 |
ได้รับการจัดเรียง | GetSortedAsync() | 5 + ผู้เล่น num × 2 |
รับรุ่น | Class.DataStore:GetVersionAsync()|GetVersionAsync()``Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync() | 5 + ผู้เล่น num × 2 |
รายการ | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + ผู้เล่น num × 2 |
ลบ | RemoveVersionAsync() | 5 + ผู้เล่น num × 2 |
ข้อจํากัดข้อมูล
คลังข้อมูลจํากัดจํานวนข้อมูลที่สามารถใช้ได้ต่อรายการ
ชื่อร้านข้อมูล ชื่อกุญแจ และ สกอป ทั้งหมดจะต้องอยู่ภายใต้ความยาวตัวอักษรที่กำหนด ใช้ string.len() เพื่อตรวจสอบความยาวของพวกเขา
ข้อมูล (ค่ากุญแจ) ยังถูกเก็บไว้เป็นข้อความ ไม่ว่าจะเป็นประเภทเริ่มต้นอะไรคุณสามารถตรวจสอบขนาดของข้อมูลด้วยฟังก์ชัน JSONEncode() ซึ่งแปลงข้อมูล Luau เป็นโต๊ะ JSON ที่เข้ารหัส
ส่วนประกอบ | จํานวนตัวละครสูงสุด |
---|---|
ชื่อที่เก็บข้อมูล | 50 |
ชื่อกุญแจ | 50 |
ขอบเขต | 50 |
ข้อมูล (ค่ากุญแจ) | 4,194,304 คีย์ |
ข้อจํากัดของเมทาดาต้า
ข้อจํากัดของจํานวนตัวอักษรในเมตาดาตาของผู้ใช้ที่กําหนดเอง
ส่วนประกอบ | จํานวนตัวละครสูงสุด |
---|---|
ชื่อกุญแจ | 50 |
มูลค่า | 250 |
คู่ค่ากุญแจ | 300 |
ขีดจํากัดปริมาณการผลิต
ขีดจํากัดการส่งผ่านต่อคีย์ช่วยให้แน่ใจว่าประสิทธิภาพจะเป็นอย่างดีบนเซิร์ฟเวอร์ Robloxข้อจํากัดแต่ละข้อใช้กับทุกคีย์เดียวในทุกเซิร์ฟเวอร์ในประสบการณ์และรีเฟรชเมื่อเวลาผ่านไป
Roblox ตรวจสอบการใช้ความถี่ที่เกี่ยวข้องกับกุญแจในช่วง 60 วินาทีที่ผ่านมาหากการใช้งานรวมถึงคำขอปัจจุบันอยู่ภายในขีดจํากัดผ่านทางการร้องขอจะได้รับการอนุมัติหากการใช้งานเกินขีดจำกัด คำขอจะถูกปฏิเสธ
พิมพ์ | จํากัด |
---|---|
อ่าน | 25 MB ต่อนาที |
เขียน | 4 เมกะไบต์ต่อนาที |
ขีดจํากัดการจัดเก็บ
ขณะนี้ไม่มีข้อจํากัดการจัดเก็บข้อมูลที่บังคับใช้ในคลังข้อมูล