В моем проекте ASP.Net MVC4 у меня есть метод, который сохраняет введенные пользователем данные. И как только сохранение будет выполнено, страница будет перезагружена новыми значениями.Лучшая практика для разделения большой задачи в ASP.net MVC
Однако в новом требовании у нас есть много времени для восстановления индекса для функциональности поиска, которая будет добавляться, когда пользователь сохраняет данные. Хотя нам удалось добиться этого, перестройка - трудоемкая задача. Следовательно, пользователю нужно подождать значительное количество времени, чтобы получить ответное действие назад, чтобы увидеть обновленную страницу.
Так что мне было интересно, есть ли хорошая практика, чтобы разрушить этот проект. Как и раньше, элемент управления должен возвращаться пользователю, как только данные будут сохранены в БД. Хотя восстановление должно происходить на фоне.
Предыдущий прототип функции.
function saveData()
{
//Do Saving
Return Success
}
Текущая функция
function saveData()
{
//Do Saving
// Rebuild Index
Return Success
}
Теперь я могу вернуть успех прежде, чем восстановление, а также мне нужно сделать восстановление на заднем конце.
Один из способов, по нашему мнению, состоял в том, что, поскольку мы находимся в Azure, мы можем создать рабочую роль для запуска этого небольшого интервала. Однако это большие накладные расходы, так как мы не можем периодически обновлять профиль своих пользователей. Но когда они это делают, они должны бежать.
Можно ли использовать любую встроенную функцию или архитектуру ASp.net/C# для достижения этой цели? Asynchronusly?
Чтобы быть честным, лучше всего практика должна диктовать, что вы не должны перестраивать индексы каждый раз, когда запись обновляется. –
Спасибо Moo. Поскольку мы используем Lucine Search, индекс необходимо перестроить, чтобы получить новые изменения, затронутые в функциональности поиска. – TBA
Вы не можете сделать это внутри ASP.NET, потому что вы получите только прерывания потока, пока не дождитесь завершения потока. Конечно, это было бы почти бесполезно. Я предлагаю создать службу Windows, которая слушает очередь MSMQ и отбрасывает сообщения в очередь из веб-приложения. –