Мой текущий сайт настроен так, чтобы оставлять сообщения определенным людям при первом входе в приложение. Количество оставшихся сообщений может быть от 1000 до 10000, каждое из которых является запросом, а все запросы - в операторе транзакции.
Да, я знаю, что это похоже на плохой дизайн, это не мой вопрос.
В настоящее время, когда пользователь входит в систему, сервер должен выполнить все запросы, прежде чем пользователь сможет что-либо сделать. Я имею в виду, что пользователь просматривает экран входа в систему до истечения времени ожидания и сбрасывает страницу. Недавно мы ждали до 30 минут (!)
Я хочу поместить этот процесс в поток, чтобы пользователь мог войти на веб-сайт, выполнять любые необходимые ему действия и просматривать / удалять свои сообщения, не мешая доставщику сообщений.
Мой вопрос заключается в том, решает ли проблема простое выделение нового потока для обработки этого процесса (т. Е. Разрешить ли пользователю работать, пока доставитель оставляет сообщения)? Кроме того, влияет ли выделение потока на другие веб-приложения на том же сервере?
РЕДАКТИРОВАТЬ На основе комментариев КМ
Упрощенные схемы:
Таблица задач:
TaskID StartDate EndDate PercentComplete
TSK1 4/17/09 5/17/09 60
TSK2 3/19/09 3/29/09 80
TSK3 1/1/08 2/9/09 100
Таблица назначений:
TaskID ResourceID
TSK1 111
TSK1 222
TSK2 222
TSK2 333
TSK2 444
TSK3 111
TSK3 333
Схема таблицы сообщений:
Subject Receiver Sender Content
Overdue Task 111 000 Task TSK1 is overdue.
Overdue Task 222 000 Task TSK1 is overdue.
Overdue Task 222 000 Task TSK2 is overdue.
Overdue Task 333 000 Task TSK2 is overdue.
Overdue Task 444 000 Task TSK2 is overdue.
Таким образом, код получит всех людей, назначенных для просроченной задачи (т.е. EndDate ранее, чем сегодня, и! = 100% выполнено), и оставит сообщение для них, сообщающее им
Я думаю, что реальная проблема заключается в том, что я использую запрос на выборку, чтобы получить людей, назначенных для просроченных задач, из базы данных, а затем использую код C # для составления сообщений и транзакций перед вызовом базы данных для вставки сообщений.