powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Асинхронный контроллер
20 сообщений из 20, страница 1 из 1
Асинхронный контроллер
    #39584661
NickRenziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.
Хочу заставить код контроллера вернуть вью, но оставить за собой некий долгоиграющий процесс в отдельном потоке. Что-то типа
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            try
            {
                return View();
            }
            finally
            {
                await LongRunningProcess();
            }
        }



Работает, но ждет завершения LongRunningProcess(). Вроде как основной поток не завершается и вью не возвращается, пока LongRunningProcess() не завершится.

Что не так в этой реализации? Как это вообще делается?
Спасибо.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584676
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglov,
Смысла большого так делать нету.
Клиент на ajax тебя и так асинхронно ждет.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584694
NickRenziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Кто говорит про клиента? Никто не говорит.

Смысл так делать есть огромный.
После того, как юзер залогинился, он видит свою старт-апную страницу и начинает с ней работать. В это время долгоиграющий процесс, который запустил котроллер, указанный выше (или ниже, где там мой код), подготавливает для него другие данные, которые он будет использовать в своей работе.

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

Хранилище для этих "других данных" пока не ясно. Сессия отпадает, поскольку в контексте дочернего потока ее нет. Но это следующий этап.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584699
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglov,
Обычно время запроса серверу 0,2 сек.
Чем ты там собрался тормозить мне неведомо.
Не надо веб оптимизировать. Все придумано за нас.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584704
NickRenziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
>Все придумано за нас
Вы счастливый человек в таком случае.

К сожалению, я должен фикснуть проблему с производительностью. Метод, о котором я спрашиваю - асинхронный контроллер. Может есть другие способы, но я пробую пока этот.

Есть ли что-нибудь по существу проблемы?
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584723
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglov,

что делает LongRunningProcess?
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584734
NickRenziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,
Ходит на другой сервер и прогружает справочники (~20 sec).
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584736
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglovоставить за собой некий долгоиграющий процесс в отдельном потокеАбстрагируясь от всего остального - это таймер
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584745
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglovХодит на другой сервер и прогружает справочники (~20 sec).
20 сек? Офигеть. Прогружает куда?
"Прогружай" ночью. А утром тормозить не будет и все счастливы.
На сервере ставишь JOB и сиквел постоянно "прогружает" и готовит данные.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584748
NickRenziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
>Прогружает куда?

На клиента (mobile, Silverlight, ну и ASP.NET MVC c его клиентами). Все эти клиенты хранят загруженные экземпляры справочников.
На мобайл/Silverlight проблема решена, так как там есть App на каждого, в котором можно запустить поток не тормозя навигации. В ASP.NET MVC аппликэйшн - это IIS.

>На сервере ставишь JOB и сиквел постоянно "прогружает" и готовит данные.
Уважаемый Petro123. Меня интересуют только решения с асинхронным контроллером.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584772
Kusanagi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По рукам надо бить за такую писанину.
Используйте SignalR: контроллер (даже синхронный) возвращает вьюху, js-клиент уже инициирует получение долговычисляемых данных.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584773
Kusanagi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123NickRenziglov,
Смысла большого так делать нету.
Клиент на ajax тебя и так асинхронно ждет.
Либо старый добрый ajax, но явно не то, что вы вы написали.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584785
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglovВсе эти клиенты хранят загруженные экземпляры справочников.значит вы грузите все справочники. А надо только на окно с которым работают. Ведь только в вашем проекте запрос к базе 20 сек.

NickRenziglovУважаемый Petro123. Меня интересуют только решения с асинхронным контроллером.
Дак вас никто не подержал с этим решением)
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584786
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KusanagiPetro123NickRenziglov,
Смысла большого так делать нету.
Клиент на ajax тебя и так асинхронно ждет.
Либо старый добрый ajax, но явно не то, что вы вы написали.
Почему?
На onLoad логина странички запрос с каллбэком.
При ответе через 20 сек. будет событие в js.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584787
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KusanagiSignalR
Боюсь что у него не чат с уведомлениями от сервера, а однократная "прогрузка".
Но могу ошибаться. Автор не колется на архитектуру.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584797
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglovХочу заставить код контроллера вернуть вью, но оставить за собой некий долгоиграющий процесс в отдельном потоке

Ты не хочешь этого.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584903
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно ли я понимаю что на каждый login надо освежать данные?
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39584909
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuправильно ли я понимаю что на каждый login надо освежать данные?вероятно и каждый коммит соседа.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39587964
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickRenziglovХочу заставить код контроллера вернуть вью, но оставить за собой некий долгоиграющий процесс в отдельном потоке.

Ну так и запускай его в отдельном потоке (вообще-то делать это тупо в лоб, в процессе веб-приложения нехорошо, т.ч. лучше делать через что-нибудь типа Hangfire или Quartz в отдельном процессе). А async/await - он ведь совершенно для другого задуман.
...
Рейтинг: 0 / 0
Асинхронный контроллер
    #39587976
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatон ведь совершенно для другого задуман
Увы. Что для чего задумано, т.е. архитектура, ему совершенно неинтересна.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Асинхронный контроллер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]