[英]Elixir Phoenix RabbitMQ MatchError
我正在創建消息傳遞應用程序,其中應用程序 A 需要使用 rabbitMQ 向應用程序 B 發送消息。 我正在使用 Phoenix 進行開發,在 rabbitMQ 網站上我找到了如何使用 elixir 實現 rabbitmq 的教程,但我不知道如何在我的 Phoenix 應用程序中使用它。 我嘗試將在兔子教程網站上找到的代碼添加到我的 Phoenix page_controller.ex
defmodule ApplicationA.PageController do
use ApplicationA.Web, :controller
use AMQP
def index(conn, _params) do
{:ok, connection} = AMQP.Connection.open
{:ok, channel} = AMQP.Channel.open(connection)
AMQP.Queue.declare(channel, "hello")
AMQP.Basic.publish(channel, "", "hello", "Hello World!")
IO.puts " [x] Sent 'Hello World!'"
AMQP.Connection.close(connection)
render conn, "index.html"
end
end
但我收到這個錯誤
no match of right hand side value: {:error, :econnrefused}
在第 6 行
{:ok, connection} = AMQP.Connection.open
有人幫助我應該如何以好的方式做到這一點?
您需要為 RabbitMQ 指定連接設置。
在您的config/dev.exs
添加如下內容:
config :my_app, :rabbitmq,
host: "${RABBITMQ_HOSTNAME}",
port: 5672,
username: "${RABBITMQ_UID}",
password: "${RABBITMQ_PWD}"
然后加載它們:
rabbit_settings = Application.get_env :my_app, :rabbitmq
{:ok, connection} = AMQP.Connection.open(rabbit_settings)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.