Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Output when connected to 9.2.8 without "problems":
- -------------------------------------------------
- LISTEN data_0
- LISTEN data_1
- LISTEN data_2
- LISTEN data_3
- LISTEN data_4
- LISTEN data_5
- LISTEN data_6
- LISTEN data_7
- LISTEN data_8
- LISTEN data_9
- 1: POLL_OK
- 2: POLL_OK
- 3: POLL_OK
- [Notify(20218, 'data_2', ''), Notify(20218, 'data_3', ''), Notify(20218, 'data_1', '')]
- 3: data_1
- [Notify(20218, 'data_2', ''), Notify(20218, 'data_3', '')]
- 3: data_3
- [Notify(20218, 'data_2', '')]
- 3: data_2
- 4: POLL_OK
- Output when connected to 9.2.8 with "problems":
- ---------------------------------------------
- LISTEN data_0
- LISTEN data_1
- LISTEN data_2
- LISTEN data_3
- LISTEN data_4
- LISTEN data_5
- LISTEN data_6
- LISTEN data_7
- LISTEN data_8
- LISTEN data_9
- 1: POLL_OK
- 2: POLL_OK
- 3: POLL_OK
- [Notify(30642, 'data_2', '')]
- 3: data_2
- 4: POLL_OK
- [Notify(30642, 'data_3', '')]
- 4: data_3
- 5: POLL_OK
- [Notify(30642, 'data_1', '')]
- 5: data_1
- 6: POLL_OK
- Python test script
- ------------------
- #!/usr/bin/env python
- import psycopg2,time
- from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
- dsn = "host=host dbname=database user=username"
- cnn = psycopg2.connect(dsn)
- cnn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
- cur = cnn.cursor()
- for x in range(0, 10):
- sql = "LISTEN data_" + str(x)
- cur.execute(sql)
- print sql
- id=1
- while 1:
- while 1:
- state = cnn.poll()
- if state == psycopg2.extensions.POLL_OK:
- print str(id) + ": POLL_OK"
- break
- elif state == psycopg2.extensions.POLL_READ:
- select.select([conn.fileno()], [], [])
- print str(id) + ": POLL READ"
- else:
- raise psycopg2.OperationalError("poll() returned %s" % state)
- while cnn.notifies:
- print str(id)
- print cnn.notifies
- n = cnn.notifies.pop().channel
- print str(id) + ': ' + n
- time.sleep(2)
- print "\n"
- time.sleep(2)
- id = id +1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement