我现在需要在我的数据库中更改一行。我正在使用凤凰1.2.4。我已经使用了postgres触发器,但实际上我不知道是否需要它们。
你知道我怎么能解决我的问题?
注意:数据库不一定是从控制器更改的,而是我有一个更新某些部分的cron。
答案 0 :(得分:2)
我几天前看过这个教程(Publish/subscribe with PostgreSQL and Phoenix Framework),看起来它包含了你想要的内容。
它设置来自数据库的通知,然后广播它。在您的情况下,您只需要通知部分,并且应该都很好。
我希望有帮助:)
答案 1 :(得分:2)
Postgrex.Notifications是将使用postgresql listen / notify将消息传递给elixir进程的模块。
一个简单的例子:
defmodule MyListener do
use GenServer
def start_link(), do: GenServer.start_link(__MODULE__, [])
def init(_arg) do
{:ok, pid} = Postgrex.Notifications.start_link(MyRepo.config())
Postgrex.Notifications.listen(pid, "my_table")
{:ok, []}
end
def handle_info({:notification, _connection_pid, _ref, _channel, payload}, state) do
# ... do something with payload ...
{:noreply, state}
end
end