Доброго времени суток
Сабж. До сих пор мои скрипты работали ограниченное время, а теперь появилась необходимость выполнения скрипта в течение нескольких часов или даже дней. Поэтому хочу написать что-то интерактивное ( но по-прежнему консольное ), чьим процессом выполнения может управлять пользователь.
Думаю сделать так:
- отдельная процедура ask_human() выполняет неблокирующее чтение с консоли и парсинг того, что ввёл пользователь. На выходе 2 строки - управляющее воздействие ( continue, break, status ) и задача, которую нужно выполнять ( task1, task2 и т.д. )
- в основном цикле программа будет выполнять ask_human() и sleep. Если команда получена - выполнение соответствующей задачи
- в процедурах задач есть свой цикл, в котором так же выполняется ask_human(). Если получена новая команда - возврат в основной цикл.
Норм? Или есть best practice / pattern, больше подходящий для данной задачи?
Update. Всем спасибо, остановился на варианте с отдельным потоком