Skip to content

Latest commit

 

History

History
31 lines (26 loc) · 1.94 KB

File metadata and controls

31 lines (26 loc) · 1.94 KB

Pgbus Documentation

Migration guides

Switching to Pgbus from another job backend? These guides cover what changes, what stays the same, and what to watch out for.

Guide Backend Key differences
Switch from Sidekiq Sidekiq (+ Pro/Enterprise) Remove Redis, convert native workers to ActiveJob, replace middleware with callbacks
Switch from SolidQueue SolidQueue Similar architecture (PostgreSQL + SKIP LOCKED), swap config format, gain LISTEN/NOTIFY + worker recycling
Switch from GoodJob GoodJob Both PostgreSQL-native with LISTEN/NOTIFY, swap advisory locks for PGMQ visibility timeouts, gain worker recycling

Feature comparison

Feature Sidekiq SolidQueue GoodJob Pgbus
Infrastructure Redis PostgreSQL PostgreSQL PostgreSQL (PGMQ)
ActiveJob adapter Yes Yes Yes Yes
Bulk enqueue No Yes Yes Yes
LISTEN/NOTIFY N/A No (polling only) Yes Yes
Dead letter queues No (retries only) No No Yes
Worker recycling No No No Yes
Event bus No No No Yes
Idempotent events No No No Yes
Concurrency controls Enterprise limits_concurrency good_job_control_concurrency_with Pgbus::Concurrency
Recurring/cron jobs sidekiq-cron gem config/recurring.yml config.good_job.cron Planned
Batches Pro No GoodJob::Batch Pgbus::Batch
Web dashboard Sidekiq::Web Mission Control GoodJob::Engine Pgbus::Engine
Turbo Streams transport ActionCable (Redis) ActionCable (Redis or PG) ActionCable (Redis or PG) Built-in SSE (pgbus_stream_from)
Lost messages on reconnect Yes (rails/rails#52420) Yes Yes No (PGMQ msg_id cursor)
Transactional broadcasts No No No Yes (deferred until commit)