Async Logging для приложения MVC3 - PullRequest
3 голосов
/ 27 июля 2011

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

С точки зрения контроллера, не имеет значения, была ли запись в базу данных успешной, неудачной или отложенной.

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

Ответы [ 3 ]

2 голосов
/ 27 июля 2011

Я бы посоветовал вам вести синхронный вход в что-то безопасное (скажем, в текстовый файл с log4net) и запланировать процесс для анализа этих файлов и выгрузки результата в базу данных.

Таким образом, вы ведете лучший из обоих миров (1) с помощью проверенного и проверенного метода и (2) получаете асинхронный процесс для консолидации результатов в базе данных.

1 голос
/ 27 июля 2011

Я бы рекомендовал использовать NLog с Database-Target в сочетании с AsyncWrapper .Возможно, вы также можете использовать AspNetBufferingWrapper .

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

Вы можете использовать log4net и AdoNetAppender .Но этот appender является синхронным.Вы можете реализовать свой собственный асинхронный аппендер, используя методы ADO.NET BeginInvoke / EndInvoke.

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