parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

nkostya 30.09 15:25

1. Проблема понятно не в чтении (это кешируется на любой OS), а в компиляции и формировании дерева классов. И тут сложность в том, что при другом запросе может быть другая последовательность загрузки файлов и другой результат. Но можно попробовать сделать метод сохранения состояния классов при конфигурировании веб-сервера и тогда каждый новый запрос будет начинаться не с чистого листа, а с этого состояния классов.
Когда подгружаем framework, получается что там много классов. В них изменений 0.

Я так понимаю что дерево строится от MAIN?
Может быть отдельно хеш дерева для каждого Класса, а они уже ссылкаются на другие ветки?

Если поменялся класс - перестраиваем только его зависимости.
2. Даже с комментарием непонятно о чем речь.
Нужно чтобы ответ можно было продолжать отправлять - "стримить".
Нельзя просто так "стримить" браузеру, надо чтобы браузер это поддерживал (в js нет raw TCP socket). Если речь про веб-сокеты (RFC 6455), так и надо написать.
Вебсокеты - отдельно, тоже хотелось бы, но не критично. Centrifugo юзаем и неплохо справляется.

Хотелось бы следующее:


Шапку сгенерировали - flush ответа
body сгенерировали - flush ответа
футер сгенерировали - flush ответа

Понимаем что заголовки не получится подменить, body не получится подменить, postprocess не будет работать.
Это ожидаемое поведение.

console:line - веб сервер не понимает, сразу падает.
3. По аналогии с исключениями их обрабатывать нельзя, поскольку вы едва ли хотите прерывать ход текущего запроса (или хотите?). Вообще вызвать парсерный ход по факту исключения дело нехитрое, но что конкретно он будет делать - непонятно. В общем здесь нужны конкретные примеры.
Самый базовый сценарий - прерывание. Когда необходимо по завершению что-то выполнить дополнительное.
Есть можно будет выдать запрос на подтверждение и продолжить. Будет инетереснее.

Как сценарий реализации - регистрируем метод обработчика сигнала.

В момент прихода сигнала процесс прерывается и отдает управление обработчику.
Если обработчик подтвердил - завершаем работу.
Если обработчик отклонил - продолжаем с места прерывания.

В обработчике нужен доступ к стеку, код сигнала.
Вернул true - прервали (подтверждение)
Вернул false - продолжили.

Если с подтверждением/отклонением не укладывается в концепцию. То вариант с что-то сделал и завершился - тоже хороший вариант.