Найти - Пользователи
Полная версия: Таймер
Начало » Центр помощи » Таймер
1
yum
Здравствуйте!

Подскажите пожалуйста, как сделать простой таймер, логика примерно такая:

# Функция timer() запускает каждые 10 сек. do_work()
# timer() не должен ждать завершения do_work()
def timer():
	while 1:
		time.sleep(10)
		do_work()
def do_work():
	pass
timer()

Python 3.2.3
FishHook
Вы не знаете как в питоне передать функцию аргументом в другую функцию или в чем вообще состоит суть вопроса?
yum
Я хочу запустить do_work() асинхронно, или в ивент-лупе, не дожидаясь ее выполнени. Точно по таймеру - 10 сек, а в примере выше, если функ. do_work() будет работать 5 сек. то сдедующий ее вызов будет через 15 сек.
JOHN_16
1) самый простой способ это запустить выполнение функции в новом потоке
2) как вы уже сказали использовать event loop. Для питона 3 есть asyncio модуль, для 2 и3 есть gevent модуль и тп
doza_and
JOHN_16
самый простой способ
Проще использовать готовый scheduler, тем более он встроенный.
https://docs.python.org/3/library/sched.html
https://docs.python.org/2/library/sched.html
yum
Что-то не совсем понятно как мою задачу можно реализовать с помощью scheduler. Можно пример?
ZerG
А что из примера вам не понятно?
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