Найти - Пользователи
Полная версия: Выполнение кода через определённые промежутки времени.
Начало » Python для экспертов » Выполнение кода через определённые промежутки времени.
1
ksk-
Как выполнять один и тот же код через определённый промежуток времени?
Пока делаю так:
while True:
    ......
    time.sleep(600)
Но я не уверен, что это правильный подход.
hon14o
а “реверс” как делать? прекращение выполения процесса через час например?
warik
Я думаю, намного проще будет использовать какой нибудь scheduler framework.

APScheduler
TGScheduler
sergeek
ksk-
Но я не уверен, что это правильный подход.
он правильный если все устраивает.
можно сделать посимпатичнее, если не устраивает установка фреймворков, предложенных выше
import datetime
import time
def delta(*args,**kw):
    return datetime.timedelta(*args,**kw).total_seconds()
    
def repeat(interval, within=float('inf')):
    def decorator(func):
        def wrapped(*w_args,**w_kw):
            elapsed = 0
            while elapsed < within:
                func(*w_args,**w_kw)
                time.sleep(interval)
                elapsed += interval
        return wrapped
    return decorator
@repeat(interval=delta(seconds=2),
        within=delta(minutes=1))
def main():
    print('privetik')
if __name__ == '__main__':
    main()
                
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB