Прежде всего, я буду говорить о каком-то унаследованном коде, и мы стараемся избегать его максимально возможного изменения.Кроме того, мой опыт работы со службами Windows и WCF немного ограничен, поэтому некоторые вопросы могут быть немного новичками.Просто, чтобы дать немного контекста перед вопросом.
У нас есть существующий сервис, который зацикливается.Он проверяет через вызов базы данных, есть ли у него записи для обработки.Если он не находит никаких записей, он спит в течение 30 секунд, а затем просыпается, чтобы попытаться снова.
Я хотел бы добавить точку входа в эту службу, которая позволила бы мне передать запись в эту службув дополнение к этому обработка записей из базы данных.Таким образом, основной поток будет.
Loop* Читать запись из базы данных* Если нет записи из БД, обработайте все записи, которые были переданы через точку входа.* Никаких записей, спи 30 секунд.
Меня это беспокоит.Можно ли реализовать это в одном сервисе, чтобы у меня был процесс зацикливания, но я также разрешаю входящие вызовы в любое время и добавляю дополнительные элементы в очередь, которые могут обрабатываться в цикле.Меня беспокоит параллелизм и удержание цикла и слушателя от того, чтобы они наступали друг на друга.
Я знаю, что этот вопрос может быть сформулирован не совсем правильно, но я с новой стороны в работе с этим.Любая помощь будет оценена.