notifyexample.py
author Radek Brich <brich.radek@ifortuna.cz>
Tue, 06 May 2014 18:37:43 +0200
changeset 101 2a2d0d5df03b
parent 93 b72591087495
child 104 d8ff52a0390f
permissions -rwxr-xr-x
Refactor ToolBase to allow tool composition. Add TableSync tool (composited). Move more tools under pgtool.

#!/usr/bin/env python3
#
# Call "NOTIFY notifyexample" on target DB to wake up this program.
#

from pgtoolkit import toolbase, pgmanager


class NotifyExample(toolbase.SimpleTool):
    def __init__(self):
        toolbase.SimpleTool.__init__(self, name='notifyexample', desc='Sample program for listen/notify.')
        self.init()

    def main(self):
        # create another connection for notifies, copy parameters from connection 'target'
        self.pgm.create_conn_listen('target_listen', channel='notifyexample', copy_dsn='target')
        while True:
            ev = self.pgm.wait_for_notify('target_listen', timeout=None)
            if ev:
                print(ev)


tool = NotifyExample()
tool.main()