I would recommend creating a helper module for this. Here’s how one might look:
defmodule MessageWorkerUtils do
def broadway_options(module_name, queue_names) do
[
name: module_name,
producer: [
module: {BroadwayRabbitMQ.Producer,
queue: "",
connection: [
username: "guest",
password: "guest",
host: "localhost"
],
merge_options: fn (index) ->
queue_name = Enum.fetch!(queue_names, index)
Logger.info(" connecting to queue #{queue_name}")
[queue: queue_name]
end
},
concurrency: 1
],
processors: [
default: [
concurrency: 10
]
]
)
]
end
Then you could call it in your start_link like:
def start_link(_opts) do
options = MessageWorkerUtils.broadway_options(__MODULE__, @queue_names)
Broadway.start_link(__MODULE__, options)
end
And welcome to the forum! ![]()






















