\r
import time\r
import sched\r
+# from o2common.service.unit_of_work import AbstractUnitOfWork\r
from o2common.service.watcher.base import WatcherTree\r
\r
from o2common.helper import o2logging\r
\r
\r
class PollWorker(object):\r
- def __init__(self, interval=10) -> None:\r
+ def __init__(self, interval=10, bus=None) -> None:\r
super().__init__()\r
self.watchers = []\r
self.schedinstance = sched.scheduler(time.time, time.sleep)\r
self.schedinterval = interval\r
self._stopped = True\r
+ self._bus = bus\r
\r
def set_interval(self, interval):\r
if interval > 0:\r
except Exception as ex:\r
logger.warning("Worker raises exception:" + str(ex))\r
continue\r
+\r
+ # handle events\r
+ if self._bus is not None:\r
+ events = self._bus.uow.collect_new_events()\r
+ for event in events:\r
+ self._bus.handle(event)\r
+\r
self.schedinstance.enter(self.schedinterval, 1, self._repeat)\r
\r
# note the sched run will block current thread\r