<html style="direction: ltr;">
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<style type="text/css">body p { margin-bottom: 0cm; margin-top: 0pt; } </style>
</head>
<body style="direction: ltr;"
bidimailui-detected-decoding-type="latin-charset" text="#000000"
bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 10/15/2012 02:54 PM, P. Broennimann
wrote:<br>
</div>
<blockquote
cite="mid:CACm4aU-eFNaDiYw9uH1n9VPgHN5SqseJ3HqsbgXd7-Cw++NF-g(at)mail(dot)gmail(dot)com"
type="cite"><font face="courier new, monospace">Hi there</font>
<div><font face="courier new, monospace"><br>
</font></div>
<div><font face="courier new, monospace">1) Can a Pg/SQL function
"listen" for a notification sent from an external instance?</font></div>
<div><span style="font-family:'courier new',monospace">I would
like my stored function to pause/wait and continue its
execution once an external event (NOTIFY event) occurs.</span></div>
</blockquote>
<blockquote
cite="mid:CACm4aU-eFNaDiYw9uH1n9VPgHN5SqseJ3HqsbgXd7-Cw++NF-g(at)mail(dot)gmail(dot)com"
type="cite"><br>
<div><font face="courier new, monospace">2) In </font><span
style="font-family:'courier new',monospace">Pg/SQL I can
implement a loop (until something happens) to pause/wait. This
costs CPU time -> Is there another solution? Actually I
would need something like a trigger to give my stored function
the signal to continue.</span></div>
</blockquote>
<br>
Yes. I played around with this a while ago, and thought the
possibility was beyond cool.<br>
However, after playing around with it and getting some constructive
criticism, I decided that it would be better to keep the different
application layers completely separated, so that the database layer
would not be talking directly to the GUI.<br>
<br>
Here is an example function that I sent to the list a year+ ago.<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a
href="http://archives.postgresql.org/pgsql-general/2011-06/msg00322.php">http://archives.postgresql.org/pgsql-general/2011-06/msg00322.php</a>
<br>
<br>
On the client end, I had something like this:<br>
class ListenThread(threading.Thread): <br>
def __init__(self,frame):<br>
threading.Thread.__init__(self)<br>
self.frame=frame<br>
<br>
def run(self):<br>
HOST, PORT = "192.168.1.207", 8080<br>
<br>
# Create the server, binding to localhost on port 8080<br>
server = SocketServer.TCPServer((HOST, PORT),
MyTCPHandler)<br>
server.frame=self.frame<br>
# Activate the server; this will keep running until you<br>
# interrupt the program with Ctrl-C<br>
server.serve_forever() <br>
<br>
</body>
</html>