Спецификация проблемы:
Я просматриваю действительно большое количество строк файла журнала, и я распределяю эти строки на группы для регулярных выражений (RegExses), которые я сохранил с помощью функции re.match()
. К сожалению, некоторые из моих RegExses слишком сложны, и Python иногда получает возможность отступать от ада. Из-за этого мне нужно защитить его каким-то таймаутом.
Проблемы:
-
re.match
, я использую функцию Python и, как я узнал где-то здесь, в StackOverflow (мне очень жаль, я не могу найти ссылку сейчас:-(). Очень сложно прерывать поток с запущенной библиотекой Python. По этой причине потоки не работают. - Поскольку оценка функции
re.match
занимает относительно короткое время, и я хочу анализировать с этой функцией большое количество строк, мне нужна некоторая функция тайм-аута, которая не займет слишком много времени (это делает потоки еще менее подходящими, это занимает очень много времени, чтобы инициализировать новый поток), а может быть установлено менее одной секунды.
По этим причинам ответы здесь - Время ожидания вызова функции и здесь - Функция тайм-аута, если требуется слишком много времени для завершения с помощью декоратора (будильник - 1сек и более), отключен от таблицы.
Сегодня утром я искал решение этого вопроса, но я не нашел удовлетворительного ответа.