Я работаю над простым веб-сервисом, который экспортирует данные из некоторого хранилища данных в базу данных.
Служба запускается каждые 20 секунд (интервал тестирования).
Интервалы реализуются черезSystem.Timers.Timer
класс.
На данный момент происходит:
- Служба запускается
- Таймер запускается
- Проходит 20 секунд и служба запускаетсяэкспорт
- Экспорт не завершается в течение следующих 20 секунд, и другой поток начинает попытки сделать такой же экспорт.
- В конечном итоге происходит сбой службы.
Я собирался обернуть экспорт в отдельный поток, но не уверен, полностью ли это решит проблему.
Увеличение интервала времени не вариант, потому что я не уверен, насколько большим будет будущий экспорт.
Любые предложения приветствуются.
Спасибо
Редактировать:
Я предполагаю, что мне нужно: 1. Запустить таймер 2. Запустить поток 3. Начать экспорт 4. Не позволяйте таймеру запустить другой потокпока предыдущий не завершится ...