^mail:send[] | timeout
user 04.05.2007 11:40
Описание проблемы: иногда веб-скрипт на парсере слишком долго отправляет сообщение с помощью ^mail:send[]. Причины этого бывают разные - связь, доступность майл-сервера и т.д.
Это приводит к недопустимым задержкам при генерации веб-страниц.
В случае, например, с file::load - можно указать время таймаута самому. Для mail:send нужно ждать пока оно "само" не упадет. Но клиент, как правило, уже не дождется сообщения об ошибке - или сам остановит соединение или его закроет браузер по таймауту.
Что можно сделать в этой ситуации?
Мне видятся примерно такие варианты решения:
- использовать комбинацию функций sleep/try/throw и переменной-флага (отправлено/не отправлено).
- устанавливать в конфигурации парсера таймаут на smtp-соединения
- попросить сделать функцию
^timeout[$sTimerName]($iTimeInMs){...code... ^thow[mail.timeout;..;..]}
- ^mail:send[] | timeout, user 04.05.2007 11:40