Первое кстати на поверхности, но реально про это не подумал. Плюс как мне кажется довольно сложно собрать эмулятор со своими настройками. Огромное спасибо
1. добавить nlog, и добавить логгирование на каждый вызов адреса
2. создать класс парсера, содержащий в себе новый экземпляр веб клиента, url, тело страницы, модель для сбора данных, и состояние парсера (не начат, получено адрес, получено тело, создана модель, модель сохранена в базу )
3. Добавить обработку исключений, то есть глухой try{} catch(Exception ex){ Logger.LogError(ex) }
4. В том же обработчике скидываете url, тело страницы либо в лог либо в отдельный файл
5. По вкусу можно добавить восстановление после ошибки на основе этих данных
Второй вариант просто запустите в отладчике, студия перед тем как умрет программа, как минимум покажет вам точку где была ошибка, ну и да, сложно C# уложить, что используете (в смысле что программа делает)?
Griboks, Я про инструменты анализа и отладки если что. Про оверхед при использовании памяти или потоков. У шарпа и у явы на этом много копей сломано, у питона по моему хромает, в том числе и потому как позиционировался язык.
А в чем проблема?
У вас есть парсер
Вы отправляете запрос например
POST /api/parse/
Ваши параметры
Возвращается структура
{id: '42'}
Вы периодически опрашиваете
/api/parse/42
Там отвечает сервер
{
'status': 'not complite'
}
Когда ответ станет
{
'status': 'complite'
}
Вы вызываете
/api/parse/42/result
{
'body': ''что то там отпаршеное',
'title': 'заголовок'
прочее
}