Периодические операции в службе самообслуживания WCF с использованием таймеров - PullRequest
0 голосов
/ 29 июля 2011

Я знаю, что не очень хорошая идея иметь таймеры внутри класса обслуживания WCF, который размещается внутри IIS, поскольку они должны иметь короткий срок службы. И по совету здесь также звучит так, как будто обслуживание - лучший путь для такой ситуации.

Но кто-нибудь пробовал использовать таймеры внутри собственной службы на производстве? У нас есть служба Windows, которая действует как клиент и использует таймеры для выполнения периодических операций в данный момент.

Это нормально для большинства случаев, но меня беспокоит надежность проекта: некоторые операции являются критическими (триггеры расчета финансовой системы). Поскольку служба WCF и служба Windows являются двумя компонентами, обеспечить их выполнение сложно.

Если я переместил критические операции в таймер внутри службы WCF, я устраню эту проблему, но о чем еще мне следует беспокоиться?

1 Ответ

0 голосов
/ 29 июля 2011

Если я правильно понимаю, ваш вопрос на самом деле касается служб WCF, размещенных на IIS, верно?

IIS контролирует пул приложений, в котором работает ваша служба WCF. Это означает, что IIS может решить перезапустить ваш пул приложений и все приложения / службы в нем. Тогда ваш сервис снова активируется только после вызова клиентом. Таким образом, нельзя полагаться на планирование в службах WCF или приложениях ASP.NET.

Картина, конечно, изменится, если вы сможете самостоятельно разместить службу WCF. Тогда пул приложений IIS не будет учитываться, и вы сможете планировать его по своему желанию. Поэтому, если вам нужна комбинация планирования WCF +, лучше всего создать службу Windows, которая будет включать оба варианта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...