PostgreSQL에서 데이터 변경을위한 알림을 수신해야하는 C++ 응용 프로그램을 작성 중입니다. libpqxx 라이브러리가 있습니다. 그러나 tutorial에는 그러한 사용 사례가 포함되어 있지 않습니다. 알림은 여러 채널에서 수신해야합니다. 또한 네트워킹 라이브러리로 boost::asio을 사용하고 있습니다. 가능한 경우 asio 원시 BSD 스타일 소켓을 폴링하는 대신 알림 이벤트에 대한 비동기 콜백을 사용하는 소켓 클래스를 사용하는 것이 좋습니다. 누군가가 이것에 대한 샘플 코드를 제공하거나이를 달성 할 수있는 방법에 대한 몇 가지 외부 리소스에 대한 링크를 제공 할 수 있습니까?libpqxx를 사용하여 PostgreSQL 데이터베이스에서 알림을받는 방법은 무엇입니까?
답변
당신은 notification_receiver
에 대한 API 참조입니다 http://pqxx.org/devprojects/libpqxx/doc/4.0/html/Reference/a00208.html "공지 사항 및 수신기"및 http://pqxx.org/devprojects/libpqxx/doc/4.0/html/Reference/a00062.html를 참조 pqxx::notification_receiver
에서 파생 된 클래스가 필요합니다.
_boost :: asio_ 이벤트 루프로 수신되는 알림을 통합 할 수 있습니까? – bobeff
폴링을 피하는 것이 정말 중요하다면 libpqxx 대신 libpq를 사용합니다. 폴링 방지에 대한 도움말은 https://www.postgresql.org/docs/9.1/static/libpq-notify.html을 참조하십시오. 자신감이 부족함 : asio와의 직접적인 통합은 본질적으로 불가능하다고 생각합니다. 나는 libpq로 알림을 수신하기 위해 독점적으로 별도의 스레드를 실행 한 다음 io_service :: post를 사용하여 asio hairball에 알림을 전달합니다. – NovaDenizen
10x * libpqxx *를 * asio *의 * null_buffers * 기능을 사용하여 * boost :: asio *와 통합 할 수있었습니다. – bobeff
- 1. PostgreSQL 데이터베이스에서 텍스트 파일의 데이터를로드하는 방법은 무엇입니까?
- 2. C#을 사용하여 postgresql 데이터베이스에서 double 배열을 검색하는 방법은 무엇입니까?
- 3. datamapper와 sinatra를 사용하여 postgresql 데이터베이스에서 열 데이터를 삭제하는 방법은 무엇입니까?
- 4. 알람 관리자를 사용하여 알림을받는 방법은 무엇입니까?
- 5. 웹에서 Android로 알림을받는 방법은 무엇입니까?
- 6. 세션 종료 알림을받는 방법은 무엇입니까?
- 7. docker를 사용하여 postgresql 데이터베이스에서 redmine을 실행하는 방법
- 8. PostgreSQL 데이터베이스에서 인쇄
- 9. 기존 PostgreSQL 데이터베이스에서 ActiveRecord
- 10. 부울 변수가 변경된 경우 알림을받는 방법은 무엇입니까?
- 11. PostgreSQL 데이터베이스에서 ZipCode의 열 유형은 무엇입니까?
- 12. postgresql 데이터베이스에서 특정 행을 가져 오는 방법은 무엇입니까?
- 13. postgresql 데이터베이스에서 특정 열 값만 삭제하는 방법은 무엇입니까?
- 14. eXist 데이터베이스에서 PostgreSQL 데이터베이스로 데이터를 가져 오는 방법은 무엇입니까?
- 15. PostgreSQL 데이터베이스에서 table * 또는 * view를 삭제하는 방법은 무엇입니까?
- 16. ios에서 파일 변경에 대한 알림을받는 방법은 무엇입니까?
- 17. MinGW에서 libpqxx를 연결할 수 없습니다
- 18. Google Plus 알림을받는 방법은?
- 19. 하나의 서비스를 사용하여 여러 응용 프로그램에 대한 알림을받는 방법은 무엇입니까?
- 20. 여러 등록 ID로 알림을 보내고 GCM을 사용하여 알림을받는 방법은 무엇입니까?
- 21. javascript를 사용하여 DOM 변경 사항에 대한 알림을받는 방법은 무엇입니까?
- 22. 특정 애플리케이션이 시작될 때 알림을받는 방법은 무엇입니까?
- 23. iOS에서 이러한 일정 알림을받는 방법은 무엇입니까?
- 24. 폴더에 액세스 할 때 알림을받는 방법은 무엇입니까?
- 25. iOS6에서 백그라운드에서 APNS 푸시 알림을받는 방법은 무엇입니까?
- 26. Oozie에서 REST 인터페이스를 통해 알림을받는 방법은 무엇입니까?
- 27. 성공적인 빌드가 완료되면 알림을받는 방법은 무엇입니까?
- 28. 마우스로 창을 이동할 때 알림을받는 방법은 무엇입니까?
- 29. CheckBoxPreference 상태 변경에 대한 알림을받는 방법은 무엇입니까?
- 30. 배열의 항목이 업데이트된다는 알림을받는 방법은 무엇입니까?
누가 당신에게 PostgreSQL에서 클라이언트에게 "데이터 변경"을 알릴 수 있다고 말했습니까? Postgresql에는 그런 종류의 것이 없습니다. Postgresql이 가지고있는 유일한 것은 협력하는 클라이언트 프로세스 사이의 추상적 인 수신 대기/통지 신호 기능입니다. –
트리거와 함께 사용할 수있는 NOTIFY 기능을 의미합니다. [여기] (https://www.postgresql.org/docs/9.5/static/sql-notify.html)는 문서입니다. 클라이언트 응용 프로그램은 데이터베이스에 소켓을 열어 지정된 채널에서 알림을 수신 할 수 있습니다. – bobeff