мы недавно добавили новую функцию в наше программное обеспечение - создание предварительного просмотра для документов, которые загружаются и хранятся на сервере. Мы сделали это следующим образом:
- Пользователь загружает документ;
- Как только пользователь открывает информационную карточку документа, выдается предварительный просмотр недавно загруженного документа (информация о генерации предварительного просмотра сохраняется в таблице БД);
- Каждые 30 секунд наш сервис запускается, просматривает таблицу предварительного просмотра и запускает процедуры генерации предварительного просмотра.
Проблема, с которой я сейчас сталкиваюсь, заключается в следующем: новый код для генерации превью использует некоторые из наших устаревших кодов и иногда «замораживает» процессы Word или Excel. Генерация предварительного просмотра останавливается, и все последующие предварительные просмотры остаются в режиме ожидания, пока я не завершу процессы Word, Excel (мы тестируем предварительный просмотр для документов MS Office). После того, как я убил процессы, генерация предварительного просмотра продолжается.
Я думал о внедрении таймеров в наш сервис, так что если сервис ожидает более 1 минуты после запуска генерации предварительного просмотра, он должен завершить процесс и продолжить генерацию предварительного просмотра для других документов.
Основная проблема, с которой я столкнулся, заключается в том, что я не могу «переместить» вызовы нашего унаследованного кода в отдельные процессы, как мы это делали с другими документами (например, мы реализовали создание файла .ps с помощью GhostScript через Process'es ).
Есть идеи, как "обработать" вызовы унаследованного кода?