Analitycs

понедельник, 14 ноября 2011 г.

Как реализовать периодические задачи в Twisted? (cron vs LoopingCall)

Первое что делают все программисты на Twisted, чтобы сделать периодические задачи - это лезут в cron. Я сам так раньше делал - и, к сожалению, не было никого рядом, чтобы стукнуть меня бамбуковой палкой по рукам.

Есть же методически грамотное, ВСТРОЕННОЕ решение - и нашел я его сегодня случайно, когда искал совершенно другую вещь.

from twisted.internet.task import LoopingCall

#==============================================================================
class MySuperServer(MyServer, twisted.web.server.Site):
    '''
    мой собственный веб-сервер, с блекджеком и шлюхами ;-)
    '''

    def __init__(self):
        lp = LoopingCall(self.checkStatus)
        lp.start(1.0) # период в секундах    

    def checkStatus(self):
        #self._log('Looping call')
        pass
В этом гаджете обнаружена ошибка