คำถามติดแท็ก queue

1
เลื่อนระดับอัปเดต… จำกัด 1
ฉันมีฐานข้อมูล Postgres ซึ่งมีรายละเอียดเกี่ยวกับกลุ่มของเซิร์ฟเวอร์เช่นสถานะเซิร์ฟเวอร์ ('ใช้งาน', 'สแตนด์บาย' ฯลฯ ) เซิร์ฟเวอร์ที่ใช้งานอยู่ตลอดเวลาอาจจำเป็นต้องล้มเหลวในการสแตนด์บายและฉันไม่สนใจว่าจะใช้สแตนด์บายใดเป็นพิเศษ ฉันต้องการคิวรีฐานข้อมูลเพื่อเปลี่ยนสถานะของสแตนด์บาย - เพียงแค่หนึ่ง - และส่งคืน IP ของเซิร์ฟเวอร์ที่จะใช้ การเลือกสามารถโดยพลการ: เนื่องจากสถานะของเซิร์ฟเวอร์เปลี่ยนแปลงด้วยแบบสอบถามจึงไม่สำคัญว่าจะเลือกสแตนด์บายใด เป็นไปได้หรือไม่ที่จะ จำกัด คิวรีของฉันให้อัปเดตเดียว นี่คือสิ่งที่ฉันมี: UPDATE server_info SET status = 'active' WHERE status = 'standby' [[LIMIT 1???]] RETURNING server_ip; Postgres ไม่ชอบสิ่งนี้ ฉันจะทำอะไรที่แตกต่างกัน

2
Postgres ฟัง / แจ้งเตือนเป็นคิวข้อความ
มีวิธีใช้ฟีเจอร์ Postgres Listen / Notify เพื่อส่งข้อความไปยังช่องและมีผู้ฟังเพียงคนเดียวที่ใช้ข้อความนี้หรือไม่? จุดประสงค์นี้คือฉันมีแอพ 'คนงาน' หลายคนที่ฟังช่อง Postgres เดียวกันทั้งหมด แต่ฉันต้องการให้งานทำเพียงครั้งเดียวต่อข้อความที่ได้รับผ่านช่องทางแจ้งเตือน หาก Listen / Notify ไม่ใช่คุณสมบัติที่ถูกต้องใน Postgres ฉันควรใช้คุณสมบัติแยกต่างหากหรือไม่? โดยหลักการแล้วฉันต้องการทำสิ่งนี้โดยไม่ใช้ส่วนขยายเพิ่มเติมใด ๆ

1
การลบอายุอัตโนมัติ (ลบ) ของบันทึกเก่า ๆ ใน Postgres
Postgres มีคุณสมบัติใด ๆ เพื่อรองรับระเบียนเก่าที่ล้าสมัยหรือไม่? ฉันต้องการใช้ Postgres สำหรับบันทึกเป็นคิวซึ่งบันทึก (เหตุการณ์บันทึก) ที่เก่ากว่าสองสัปดาห์ถูกลบโดยอัตโนมัติ

2
ตารางคิว FIFO สำหรับพนักงานหลายคนใน SQL Server
ฉันพยายามตอบคำถาม stackoverflow ต่อไปนี้: ฉันควรใช้วิธีการล็อค SQL Server 2005/2008 แบบใดในการประมวลผลแถวของตารางแต่ละแถวในหลาย ๆ กรณีของแอพพลิเคชันเซิร์ฟเวอร์ หลังจากโพสต์คำตอบที่ไร้เดียงสาฉันคิดว่าฉันจะเอาเงินของฉันไปที่ปากของฉันและทดสอบสถานการณ์จริง ๆที่ฉันแนะนำเพื่อให้แน่ใจว่าฉันไม่ได้ส่ง OP ออกไปในการไล่ล่าห่านป่า มันกลายเป็นว่าหนักกว่าที่ฉันคิดไว้มาก (ไม่แปลกใจสำหรับทุกคนฉันแน่ใจ) นี่คือสิ่งที่ฉันได้ลองและคิดเกี่ยวกับ: ครั้งแรกที่ฉันพยายาม TOP 1 UPDATE กับ ORDER BY ROWLOCK, READPASTภายในตารางมาใช้ สิ่งนี้ทำให้เกิดการหยุดชะงักและยังประมวลผลรายการที่ผิดปกติ จะต้องใกล้เคียงกับ FIFO เท่าที่จะทำได้ยกเว้นข้อผิดพลาดที่ต้องพยายามประมวลผลแถวเดียวกันมากกว่าหนึ่งครั้ง ฉันก็พยายามเลือก QueueID ถัดไปต้องการลงในตัวแปรโดยใช้ชุดต่างๆของREADPAST, UPDLOCK, HOLDLOCKและROWLOCKเพื่อรักษาเฉพาะแถวสำหรับการปรับปรุงโดยเซสชั่นที่ รูปแบบทั้งหมดที่ฉันลองใช้นั้นประสบปัญหาเดียวกันกับที่เคยมีมาก่อนและสำหรับการรวมกันบางอย่างกับREADPAST: คุณสามารถระบุล็อค READPAST ในระดับการแยก READ COMMITTED หรือ REPEATABLE READ สิ่งนี้ทำให้เกิดความสับสนเพราะเป็นข้อผูกมัดที่ต้องอ่าน ฉันเคยพบเจอสิ่งนี้มาก่อนและมันน่าหงุดหงิด ตั้งแต่ฉันเริ่มเขียนคำถามนี้ Remus Rusani โพสต์คำตอบใหม่สำหรับคำถาม …

3
วิธีที่ดีที่สุดในการใช้คิวตามตารางพร้อมกัน
ฉันมีตารางใน MySQL ที่แสดงถึงคิวของลิงก์ที่ต้องดำเนินการ ลิงก์จะถูกประมวลผลโดยแอพภายนอกหนึ่งต่อหนึ่งและถูกลบในท้ายที่สุด นี่เป็นคิวที่มีปริมาณสูงและฉันมีแอพประมวลผลหลายอินสแตนซ์กระจายอยู่ทั่วเซิร์ฟเวอร์หลายเครื่อง ฉันจะมั่นใจได้อย่างไรว่าแต่ละระเบียนจะถูกเลือกโดยแอปเดียวเท่านั้น มีวิธีการตั้งค่าสถานะ / ล็อกระเบียนหรือไม่ ตอนนี้เพื่อหลีกเลี่ยงการรับลิงค์เดียวกันสองครั้งขึ้นไปฉันอนุญาตให้แต่ละอินสแตนซ์รับเฉพาะชุดระเบียน (ตาม MOD ของ ID) แต่นี่ไม่ใช่วิธีที่โปร่งใสในการเพิ่มการประมวลผลคิว เพิ่มความเร็วเพียงแค่เพิ่มอินสแตนซ์ใหม่
11 mysql  queue 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.