83761b9d9f7caf6e4b8a68eab5c657727ac01a81
[plcapi.git] / trunk / psycopg2 / examples / notify.py
1 # notify.py - example of getting notifies
2 #
3 # Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.org>
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by the
7 # Free Software Foundation; either version 2, or (at your option) any later
8 # version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
12 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13 # for more details.
14
15 ## put in DSN your DSN string
16
17 DSN = 'dbname=test'
18
19 ## don't modify anything below tis line (except for experimenting)
20
21 import sys
22 import psycopg2
23 import select
24
25 if len(sys.argv) > 1:
26     DSN = sys.argv[1]
27
28 print "Opening connection using dns:", DSN
29 conn = psycopg2.connect(DSN)
30 print "Encoding for this connection is", conn.encoding
31
32 conn.set_isolation_level(0)
33 curs = conn.cursor()
34
35 curs.execute("listen test")
36
37 print "Waiting for 'NOTIFY test'"
38 while 1:
39     if select.select([curs],[],[],5)==([],[],[]):
40         print "Timeout"
41     else:
42         if curs.isready():
43             print "Got NOTIFY: %s" % str(curs.connection.notifies.pop())