1

イベントキューを作成しようとしています。DBのイベントキューテーブルにレコードを追加してから、別のスクリプトでイベントを実行できるようにしたいと考えています。

その「エグゼキュータ」スクリプトを、イベントがテーブルに追加されたというシグナルを受け取るまで待機させる方法はありますか?明らかに、DBにランダムにクエリを実行することはできません。これは、非常に無駄になるためです。

私はこれが幅広い質問であることを知っているので、手をつなぐことを求めるのではなく、正しい方向へのポイントを求めるだけです。

4

2 に答える 2

1

データベースにこれに対処するものがある場合、それはデータベース固有になります。たとえば、PostgreSQLではLISTEN/を使用できますNOTIFY

$SIG{...}また、他の機能を使用して、(さまざまな)単純なシステム信号からUDPパケット、完全なジョブキューイングおよび通知システムまで、ウェイクアップするようにエグゼキュータに通知することもできます。

しかし、実際には、これについて心配する必要はないと思います。仕事をチェックするための些細な選択にかかる時間を実際に計ったことがありますか?おそらく1ミリ秒の範囲です。数秒ごとにデータベースをポーリングする場合、パフォーマンスへの影響はごくわずかです。

于 2013-01-04T19:58:10.200 に答える
0

一部のDBMSはそれをサポートしています。MySQLの例として、UDFを使用して、トリガーから外部プログラムを実行できます。どのDBMSを使用していますか?

于 2013-01-04T22:53:32.707 に答える