Форум сайта python.su
Здравствуйте!
Подскажите пожалуйста, как сделать простой таймер, логика примерно такая:
# Функция timer() запускает каждые 10 сек. do_work() # timer() не должен ждать завершения do_work() def timer(): while 1: time.sleep(10) do_work() def do_work(): pass timer()
Отредактировано yum (Апрель 3, 2016 15:13:09)
Офлайн
Вы не знаете как в питоне передать функцию аргументом в другую функцию или в чем вообще состоит суть вопроса?
Офлайн
Я хочу запустить do_work() асинхронно, или в ивент-лупе, не дожидаясь ее выполнени. Точно по таймеру - 10 сек, а в примере выше, если функ. do_work() будет работать 5 сек. то сдедующий ее вызов будет через 15 сек.
Офлайн
1) самый простой способ это запустить выполнение функции в новом потоке
2) как вы уже сказали использовать event loop. Для питона 3 есть asyncio модуль, для 2 и3 есть gevent модуль и тп
Офлайн
JOHN_16Проще использовать готовый scheduler, тем более он встроенный.
самый простой способ
Офлайн
Что-то не совсем понятно как мою задачу можно реализовать с помощью scheduler. Можно пример?
Офлайн
А что из примера вам не понятно?
Офлайн