]>
git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - manager.py
7 import webapp
.backend
as backend
13 self
.ioloop
.set_blocking_log_threshold(900)
17 return tornado
.ioloop
.IOLoop
.instance()
19 def add(self
, manager_cls
):
20 manager
= manager_cls(self
)
21 self
._managers
.append(manager
)
27 for manager
in self
._managers
:
36 class Manager(object):
37 def __init__(self
, daemon
):
40 self
.pc
= tornado
.ioloop
.PeriodicCallback(self
, self
.timeout
* 1000)
42 logging
.info("%s was initialized." % self
.__class
__.__name
__)
47 logging
.info("%s main method was called." % self
.__class
__.__name
__)
51 # Update callback_time.
52 self
.pc
.callback_time
= self
.timeout
* 1000
53 logging
.debug("Next call will be in %.2f seconds." % \
54 (self
.pc
.callback_time
/ 1000))
59 Return a new callback timeout in seconds.
61 raise NotImplementedError
64 raise NotImplementedError
68 class MirrorManager(Manager
):
71 return backend
.Mirrors()
75 return backend
.Config().get_int("mirror_check_interval")
78 # Check status of all mirror servers.
79 self
.mirrors
.check_all()
82 class ReleaseFilesManager(Manager
):
85 return backend
.Releases()
89 return backend
.Config().get_int("releasefiles_check_interval")
92 for release
in self
.releases
.list():
96 if __name__
== "__main__":
99 d
.add(ReleaseFilesManager
)