3

私はPostgreSQLで2つの部分からなるデータベースアプリケーションを書いています:

  1. GUI-Symfony/Doctrineで書かれています
  2. 処理-C/libpqで記述

処理コンポーネントは、GUIによって挿入された後、テーブルからのデータを処理します。しかし、処理コンポーネントはどのようにして変更があることを認識しますか?私のデフォルトの答えは、ある種のポーリングを避けたいので、PostgreSQLのnotify/listenコマンドを使用することでした。

質問:

  1. Symfonyアプリケーションがpostgresqlnotifyコマンドを使用できる方法はありますか?DoctrineはネイティブSQL選択をサポートしていますが、これが私に必要なものだとは思いません。

  2. 他のアイデアはありますか?

前もって感謝します。

4

1 に答える 1

3

ネイティブSELECTで十分です。

通常はNOTIFYステートメントを使用しpg_notifyますが、同じ効果を得るために関数を呼び出すこともできます。

SELECT pg_notify('key','payload');

ワーカーはLISTEN key;通常どおりに操作でき、使用された場合と同じようにこの方法で生成された通知を受け取りNOTIFYます。

于 2012-11-23T00:11:56.157 に答える