Асинхронный Storec Proc без ожидания завершения - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть клиентское приложение, которое собирает данные в необработанную таблицу. Это клиентское приложение выполняет асинхронный вызов хранимой процедуры, которая фактически анализирует необработанные данные в таблицы. Эта обработка обрабатывается хранимой процедурой. Эта хранимая процедура может занять до получаса. Мы хотим, чтобы клиентское приложение, вызывающее хранимый процесс, закрылось и полностью прекратило работу. Как только мы уничтожаем клиентское приложение, которое вызывает хранимый процесс, хранимая процедура прекращает выполнение.

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

Вот метод Async. Я использую LINQ. Могу ли я как-то изменить это? Или мне вообще нужен новый дизайн?

partial class MetaDataContext
{

    delegate int Process_CompleteCycle2Delegate(int? frequencyID, int? cycleID);

    public void Process_CompleteCycle2Async(int? frequencyID, int? cycleID)
    {
        Process_CompleteCycle2Delegate completeCycleDelegate = new Process_CompleteCycle2Delegate(this.Process_CompleteCycle2);
        IAsyncResult async = completeCycleDelegate.BeginInvoke(frequencyID, cycleID, null, null);

}

1 Ответ

4 голосов
/ 01 декабря 2009

См. Асинхронное выполнение процедуры для надежного и транзакционного подхода.

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