River - Go + Postgres के लिए तेज़ और मज़बूत Job Queue
(brandur.org)- सुझाव है कि application data और job queue, दोनों के लिए एक ही database (Postgres) का उपयोग किया जाए। इससे dependencies न्यूनतम रहती हैं
- दूसरे database changes के साथ transaction के रूप में jobs को queue में डालने से distributed systems की पूरी एक श्रेणी की समस्याओं से बचा जा सकता है
- Transactional enqueueing: transaction commit होने पर job queue में जाती है, transaction rollback होने पर हटा दी जाती है, और commit होने तक job दिखाई नहीं देती
- Postgres की
NOTIFYcapability का उपयोग करके, जैसे ही job तैयार होती है, job queue worker को जगा कर काम शुरू कर सकती है, जिससे job शुरू होने से पहले की औसत latency milliseconds तक घट सकती है - Postgres के binary protocol का उपयोग किया जाता है, और database के साथ round trips को न्यूनतम रखकर efficiency बढ़ाई जाती है
- Bulk Job Insert को
COPY FROMका उपयोग करके कुशलतापूर्वक किया जाता है
- Bulk Job Insert को
अभी कोई टिप्पणी नहीं है.