def _notifysleep(self, delay):
"""Sleeps up to delay number of seconds, but will schedule an
immediate new event queue check if an event notification is received
from PostgreSQL.
"""
conn = connection.connection
if conn:
try:
select.select([conn], [], [], delay)
except select.error as err:
if err.args[0] != errno.EINTR:
raise
try:
conn.poll()
except OperationalError:
connection.connection = None
self._listen()
return
if conn.notifies:
self._logger.debug("got event notification from database")
self._schedule_next_queuecheck()
del conn.notifies[:]
else:
time.sleep(delay)
评论列表
文章目录