Beispiel #1
0
 def stop(self, done=None, wait=True):
     # print(f"Stopping pool")
     for event in self.events:
         event.set()
     if wait:
         for worker in self.workers:
             worker.join()
     cast(done, "set")
Beispiel #2
0
 def stop(self, done=None):
     # print("Stopping client!")
     self.kill_switch.set()
     event = dict()
     event["name"] = "closing"
     event["data"] = dict()
     event["data"]["when"] = utc_now_timestamp()
     self._send_event(event)
     self.running = False
     self.sock.close()
     self.stopped.set()
     cast(done, "set")
Beispiel #3
0
 def stop(self, wait=True):
     # print("[manager] Stopping")
     if self.monitor_interval > 0:
         self.monitor.event.set()
     with self._manager:
         dones = list()
         threads = list()
         for pool in self.pools:
             done = Event()
             dones.append(done)
             thread = Thread(target=pool.stop, args=(done, wait))
             thread.setDaemon(True)
             threads.append(thread)
             thread.start()
         if wait:
             for thread in threads:
                 thread.join(self.timeout)
         self._load_presets()
         cast(self.stopped, "set")
Beispiel #4
0
 def _exec_controls(self, controls):
     for action, methods in controls.items():
         for method in methods:
             cast(method, action)
Beispiel #5
0
 def _cleaner(self, idle_pools, done=None):
     print("[manager] Cleaning pools")
     for pool in idle_pools:
         self._stop_pool(pool, wait=done is not None)
     print("[manager] Pools are cleaned")
     cast(done, "set")
Beispiel #6
0
 def _process_trigger(self, unit, previous, value):
     now = cast(Cron, f"get_{unit}", utc_now())
     if value == "change" and previous is not None:
         return cast(Cron, f"get_{unit}", previous) != now
     else:
         return now == value