diff options
Diffstat (limited to 'module')
| -rw-r--r-- | module/HookManager.py | 23 | ||||
| -rw-r--r-- | module/plugins/Hook.py | 1 | 
2 files changed, 17 insertions, 7 deletions
diff --git a/module/HookManager.py b/module/HookManager.py index a6a8e4005..69e922d14 100644 --- a/module/HookManager.py +++ b/module/HookManager.py @@ -48,7 +48,8 @@ class HookManager():                  return func(*args)              except Exception, e:                  args[0].log.error(_("Error executing hooks: %s") % str(e)) -                traceback.print_exc() +                if args[0].core.debug: +                    traceback.print_exc()          return new      def createIndex(self): @@ -70,12 +71,21 @@ class HookManager():          self.plugins = plugins -    @try_catch -    def periodical(self): -        for plugin in self.plugins: -            if plugin.isActivated() and plugin.lastCall + plugin.interval < time(): -                plugin.lastCall = time() +    def initPeriodical(self): +        def wrapPeriodical(plugin): +            plugin.lastCall = time() +            try:                  plugin.periodical() +            except Exception, e: +                args[0].log.error(_("Error executing hooks: %s") % str(e)) +                if self.core.debug: +                    traceback.print_exc() +             +            self.core.scheduler.addJob(plugin.interval, wrapPeriodical, args=[plugin]) +         +        for plugin in self.plugins: +            if plugin.isActivated(): +                self.core.scheduler.addJob(0, wrapPeriodical, args=[plugin])      @try_catch @@ -83,6 +93,7 @@ class HookManager():          for plugin in self.plugins:              if plugin.isActivated():                  plugin.coreReady() +        self.initPeriodical()      @lock      def downloadStarts(self, pyfile): diff --git a/module/plugins/Hook.py b/module/plugins/Hook.py index 93454b131..1b3c05ba1 100644 --- a/module/plugins/Hook.py +++ b/module/plugins/Hook.py @@ -36,7 +36,6 @@ class Hook():          self.config = core.config          self.interval = 60 -        self.lastCall = 0          self.setup()  | 
