c # asp многопоточность или веб-метод - PullRequest
0 голосов
/ 30 мая 2018

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

У меня есть кнопка на моем c # asp-сайте, которая выполняеткуча вызовов API, и процесс может занять несколько минут.Я хочу отделить этот процесс, чтобы он мог работать «в фоновом режиме» и не мешал работе пользователя.Процесс тесно связан с моим текущим проектом, поэтому нелегко разделить код на отдельный проект веб-службы.

Итак ..

  1. Если я запусту следующееКод потока, он будет работать успешно, если пользователь убивает браузер?Какие у меня проблемы / соображения?

Тема обсуждения = новая тема (new ThreadStart (RefreshData));

Если вышеприведенное не работает, могу ли я сделать эту работу, добавив несколько [веб-методов] в один и тот же проект и вызвав их из того же проекта?(если да - какие-нибудь советы?)

Если я сделаю это, он успешно выполнит их в другом потоке iis?то есть .. если пользователи убивают свой браузер - могу ли я быть уверен, что процессы из сервиса будут успешно завершены?

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

Заранее спасибо, банда ..

1 Ответ

0 голосов
/ 30 мая 2018

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

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

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

...