Skip to content

Commit

Permalink
Add information to threads about scheduled action time
Browse files Browse the repository at this point in the history
  • Loading branch information
tuomas2 committed Jun 19, 2016
1 parent 438666c commit 3a861b1
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/automate/callables/builtin_callables.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

from __future__ import unicode_literals
from builtins import bytes

import datetime
from future import standard_library
standard_library.install_aliases()

Expand Down Expand Up @@ -543,7 +545,8 @@ def call(self, caller, **kwargs):
delay = self.call_eval(self.delay, caller, **kwargs)
timer = threading.Timer(delay, None)
timer.function = threaded(self._run, caller, timer, **kwargs)
timer.name = "Timer for " + str(self) + " %d sek" % delay
time_after_delay = datetime.datetime.now() + datetime.timedelta(seconds=delay)
timer.name = "Timer for %s timed at %s (%d sek)" % (self, time_after_delay, delay)
timer.start()
timers.append(timer)

Expand Down
5 changes: 3 additions & 2 deletions src/automate/sensors/builtin_sensors.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ def _setup_next_update(self, next_update_time):
delay = next_update_time - now + timedelta(seconds=5)
self.logger.debug('Setting timer to %s, %s seconds, at %s', delay, delay.seconds, now+delay)
self._update_timer = threading.Timer(delay.seconds, threaded(self.update_status,))
self._update_timer.name = ("Timer for TimerSensor " + self.name + " at %s" % (now + delay))
self._update_timer.name = ("Timer for TimerSensor %s at %s" % (self.name, now + delay))
self._update_timer.start()

def cleanup(self):
Expand Down Expand Up @@ -313,7 +313,8 @@ def _restart(self):
if self.poll_active:
self.update_status()
self._pollthread = threading.Timer(self.interval, threaded(self._restart))
self._pollthread.name = "PollingSensor: " + self.name + " %.2f sek" % self.interval
time_after_interval = datetime.now() + timedelta(seconds=self.interval)
self._pollthread.name = "PollingSensor: %s next poll at %s (%.2f sek)" % (self.name, time_after_interval, self.interval)
self._pollthread.start()

def update_status(self):
Expand Down
4 changes: 3 additions & 1 deletion src/automate/statusobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import time
import sys

import datetime
from traits.api import (cached_property, Any, CBool, Instance, Dict, Str, CFloat,
List, Enum, Bool, Property, Event)
from traits.trait_errors import TraitError
Expand Down Expand Up @@ -306,11 +307,12 @@ def timer_func(func, *args):
else:
timesince = time.time() - self._last_changed
delaytime = max(0, self.safety_delay - timesince, changedelay)
time_after_delay = datetime.datetime.now() + datetime.timedelta(seconds=delaytime)
logger("Scheduling safety/change_delay timer for %f sek. Now %s. Going to change to %s.",
delaytime, self._status, status)
self._timed_action = threading.Timer(delaytime, timer_func,
args=(self._add_statuschange_to_queue, status, getattr(self, "program", None), True))
self._timed_action.name = "Safety/change_delay for " + self.name + " %f sek" % delaytime
self._timed_action.name = "Safety/change_delay for %s timed at %s (%f sek)" % (self.name, time_after_delay, delaytime)
self._timed_action.start()
return False

Expand Down

0 comments on commit 3a861b1

Please sign in to comment.