C # 5 .NET MVC длинная асинхронная задача, отчет о ходе выполнения и глобальная отмена

Я использую ASP.Net MVC 5, и у меня есть длительное действие, которое должно опрашивать веб-сервисы, обрабатывать данные и сохранять их в базе данных.

Для этого я хочу использовать библиотеку TPL для запуска задачи асинхронно.

Но мне интересно, как сделать 3 вещи:

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

Я знаю немало обо всех задействованных технологиях. Но я'Я не уверен, как лучше всего этого достичь.

Кто-нибудь может помочь мне найти лучшее решение?

Ответы на вопрос(2)

Ваш ответ на вопрос