8 पॉइंट द्वारा GN⁺ 2024-08-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • PgQueuer, PostgreSQL की मज़बूती का उपयोग करने वाली Python के लिए एक minimal/high-performance task queue लाइब्रेरी है
  • इसे सादगी और दक्षता के लिए डिज़ाइन किया गया है, और PostgreSQL के LISTEN/NOTIFY का उपयोग करके task queue को आसानी से मैनेज किया जा सकता है

विशेषताएँ

  • आसान integration: PostgreSQL का उपयोग करने वाले मौजूदा Python applications के साथ इसे आसानी से integrate किया जा सकता है
  • दक्ष concurrent processing: PostgreSQL के FOR UPDATE SKIP LOCKED का उपयोग करके भरोसेमंद और concurrent task processing संभव होती है
  • real-time notifications: LISTEN और NOTIFY का उपयोग करके task status changes पर real-time updates प्रदान करता है

GN⁺ का सार

  • PgQueuer, PostgreSQL की LISTEN/NOTIFY सुविधाओं का उपयोग करके Python applications में task queue को कुशलतापूर्वक मैनेज करने में मदद करता है.
  • यह आसान integration और दक्ष concurrent processing प्रदान करता है, जिससे इसे मौजूदा systems में आसानी से लागू किया जा सकता है.
  • real-time notification फीचर के ज़रिए task status को तुरंत देखा जा सकता है, जिससे task management आसान हो जाता है.
  • समान सुविधाएँ देने वाले अन्य projects में RQ, Celery आदि शामिल हैं.

1 टिप्पणियां

 
GN⁺ 2024-08-19
Hacker News राय
  • Graphile Worker लाइब्रेरी के साथ तुलना के बारे में सवाल
  • PostgreSQL-आधारित job queue लाइब्रेरीज़ के बीच एक common schema साझा करने की संभावना पर विचार
    • Elixir के Oban के प्रशंसक हैं
    • जैसे कई भाषाओं में Sidekiq-compatible लाइब्रेरीज़ हैं, वैसे ही PostgreSQL-आधारित job queue के लिए भी ऐसा ही approach उपयोगी हो सकता है
    • Rust में core job queue लाइब्रेरी विकसित करके language-specific bindings पर विचार किया जा सकता है
  • हर चीज़ के लिए Postgres इस्तेमाल करने के पक्ष में हैं, और अपने प्रोजेक्ट्स में इसे अधिकतम कर रहे हैं
    • ऐसा Postgres job queue चाहते हैं जो multi-stage pipeline, fan-out और accumulation कर सके
    • structured relational database इसे model करने के लिए खास तौर पर उपयुक्त है
    • listen/notify का अधिकतम payload size 8k सीमित है
    • streaming tables और rich type support चाहते हैं
  • Postgres में queue implement करने पर एक अच्छा PostgresFM episode सुझाया गया
  • PgQueuer, Postgres RPC calls, triggers और cronjobs(pg_cron) को अच्छी तरह integrate करता है
  • River लाइब्रेरी भी देखने लायक है
    • scheduled jobs आदि को support करती है
    • debugging के लिए UI भी देती है
  • PUB/SUB tasks के लिए Broadcaster का उपयोग किया जा रहा है
  • MySQL में सबसे सरल job queue उदाहरण
    • update job_table set key=value where ... limit 1 syntax का उपयोग
    • सरल और atomic है
    • PostgreSQL update ... limit syntax की अनुमति नहीं देता
  • MySQL user हैं, लेकिन PostgreSQL को explore कर रहे हैं
    • यह बहुत-सी features built-in देता है
    • यह एक बहुत दिलचस्प tool है
  • Procrastinate लाइब्रेरी भी मौजूद है
    • PostgreSQL के LISTEN/NOTIFY का उपयोग करती है (इसे वैकल्पिक रूप से बंद किया जा सकता है और polling इस्तेमाल की जा सकती है)
    • sync और async tasks, periodic jobs, retries, job locking, priority, job cancellation/abort, और Django integration (optional) को support करती है
    • Procrastinate के सह-maintainer हैं