Состояния событий в C # - PullRequest
1 голос
/ 15 января 2010

Существуют ли механизмы событий с отслеживанием состояния в .net (c #) или какие-либо библиотеки, которые помогут мне поддерживать состояние для событий, сгенерированных

Под состоянием я подразумеваю событие, когда срабатывание сериализуется в постоянное хранилище. Если система по какой-либо причине дает сбой, а затем, когда она выкуплена, получает сериализованное состояние и затем запускает его снова.

Я также смотрю на запланированные события - в этом случае событие с сохранением состояния может быть делегировано в будущее время и будет гарантированно запущено в это время, даже если система была куплена в любое время между ними.

Есть ли что-нибудь подобное в .net?

Ответы [ 3 ]

1 голос
/ 15 января 2010

Хотя технически это не механизм событий с отслеживанием состояния, Windows Workflow Foundation содержит множество функций для обработки этих конкретных типов ситуаций.

В частности, он имеет подпрограммы для сериализации рабочего состояния в хранилище, обработки сбоев и восстановления долго выполняющихся процессов с внешними событиями.

1 голос
/ 15 января 2010

Есть некоторая кривая обучения, но Windows Workflow Foundation (WF) делает именно это. У рабочих процессов есть действия, которые могут включать в себя создание или обработку событий, и в различных точках рабочего процесса состояние всего рабочего процесса может быть сериализовано. Он поддерживает SQL-сервер из коробки, но вы можете расширить уровень персистентности. Когда рабочие процессы возобновляются с сериализации, они начинают с того места, где остановились.

Стоит отметить, что любые серьезные инвестиции в текущую версию WF не приветствуются, поскольку они полностью переписали ее в .NET 4.0, и вам, вероятно, следует начать с этого, если у вас нет инвестиций в текущую версию.

0 голосов
/ 15 января 2010

Возможно, вы сможете что-то сделать с PostSharp.

...