使用 notify_listener - libpqxx

7

我正在尝试使用libpqxx监听notify事件。我从一个扩展了pqxx::notify_listener的示例开始。

#include <iostream>
#include <string>
#include <pqxx/pqxx>

class Foo : public pqxx::notify_listener {

public:
  Foo(pqxx::connection_base &c): pqxx::notify_listener(c, "listen") {}
  virtual void operator()(int id) { std::cout << "HERE!" << std::endl; }
};

int main(void) {
  // set up the listener
  pqxx::connection con("...secret...");
  Foo listener(con);

  // loop forever ...
}

但我无法使其运作。

我尝试将name参数切换为
pqxx::notify_listener(c, "my_schema"),
pqxx::notify_listener(c, "listen my_schema") 和其他一些方法。

我是通过pgAdmin手动创建NOTIFY事件的。无论我做什么,这个函数对象都不会执行。

1个回答

9

你是否在主循环中调用 pqxx::connection_base::get_notifs() 或者 pqxx::connection_base::await_notification() 呢?

如果没有,你需要这样做。


1
很好的发现。这在Doxygen文档中并不明显。 - Stéphane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接