Как использовать ящик postgres для получения событий модификации таблицы из PostgreSQL? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть процесс Rust, связанный с базой данных PostgreSQL.Этот процесс связывается с серверным процессом для передачи деталей по каналам MPSC.Я застрял на том, как прослушивать и обрабатывать события для модификации таблицы.

Я пытался использовать tokio-postgres, но кажется, что проблема с ним в Windows.

1 Ответ

0 голосов
/ 26 июня 2019

Прослушивание событий на определенном канале для PostgreSQL происходит следующим образом: -

// Establish connection with database.
let url = "postgresql://root:root1234@127.0.01/test";
let conn = Connection::connect(url, TlsMode::None).unwrap();

// Listen for events on channel 'myevent'.
conn.execute("LISTEN myevent", &[]).expect("Could not send LISTEN");
let notifications = conn.notifications();
let mut it = notifications.blocking_iter();

println!("Waiting for notifications...");
loop {
    let a = it.next();
    match a {
        Ok(Some(b)) => {
            println!("{:?}", b);
        },
        Err(e) => println!("Got error {:?}", e),
        _ => panic!("Unexpected operation!!!")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...