View Source OffBroadwayPgmq (OffBroadwayPgmq v0.2.2)
Pgmq producer for broadway, adapted from BroadwaySQS
The producer receives 4 options:
:repo: the ecto repo to be used, mandatory.:dynamic_repo: dynamic repo to be used, optional.:queue: the queue name to be used, mandatory.:visibility_timeout: the time the messages will be unavailable in the queue after being read. Required:max_poll_seconds: how long the maximum poll request takes, optional, defaults to 5 seconds.:attempt_interval_ms: interval in ms to wait before doing poll requests in case there is demand but no messages are found. Optional, defaults to 500:pgmq_poll_interval_ms: option on pgmq side that dictates poll interval postgres-side. Optional, defaults to 250.
If you're using many queues, this can be a bit heavy in your connection pool,
so its important to configure properly. You might want to adjust max_poll_seconds
and :attempt_interval_ms to trade off connection usage for more latency. You can
also use a :max_poll_seconds of 0 to perform no polling at all.
:pgmq_poll_interval_ms is the database side poll interval. By adjusting it,
you can increase or decrease the amount of work performed database side at
the risk of getting more latency.