On 2 May 2001, Vivek Khera wrote: > I've got an application that creates work and posts the work requests > to a table. Each work request is just a single row in the table. > I've also got two systems that do the work based on the requests in > the table. > > It seems that ideally, I could use the LISTEN/NOTIFY features to tell > the consumers when there is work. However, what I really need is a > blocking LISTEN. That is, it just sits there until it gets a NOTIFY. > > Right now, the consumer checks for work every so often, and most of > the time finds none. > > What's the best way to implement such a thing in Perl? Is there a > blocking LISTEN? I'm not a serious expert on such things, but, in Perl, LISTEN/NOTIFY is handled through DBI/DBD, so the LISTEN/NOTIFY notification will come only when a regular query is sent. Could you possibly do something like: while (1) { execute regular, simple query (eg "SELECT 1;") check for notification, and handle it sleep for x minutes/seconds/msecs } It's still a loop w/a query, but at least the query should be extremely speedy and have low impact on DB performance. If you find a better way, please let me know. HTH, -- Joel Burton <[EMAIL PROTECTED]> Director of Information Systems, Support Center of Washington ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html