Hangfire работает с большинством .NET-платформ:.NET Framework 4.5 или более поздние версии, .NET Core 1.0 или новее, всё, что связано с . Платформа, совместимая с NET Standard 1.3. Вы можете интегрировать его практически с любым фреймворком приложений, включая ASP.NET, ASP.NET Core, консольные приложения, сервисы Windows, WCF и драйверы сообщества, такие как Nancy или ServiceStack.
Применимые сценарии:Фон отправляет письмо асинхронно и возвращает ответ пользователю как можно скорее. Запланированное выполнение задач, цикличное выполнение задач, асинхронное выполнение трудоёмких задач, выполнение задачи A и затем выполнение задач B, а также пакетное выполнение задач. Как я раньше это делал:
В ASP.NET приложении можно разместить фоновую обработку без использования других процессов, таких как сервисы Windows. Код Hangfire готов к развертываниюНеожиданное завершение процесса, переработка пула приложений и перезапуск。 Из-за использованияПостоянное хранение, отсюда тыНи одна фоновая работа не теряется。
Во-первых, изображения следующие:
На фото выше — это панель управления Hangfire Dashboard, которая очень полезна и позволяет проверять статус фоновых задач, и она очень классная, поэтому её нужно настроить.
Интерфейс панели управления требует стартового класса, только если выПри настройке Hangfire с классом Startup,Интерфейс панели управленияЕго можно использовать。
Сначала я не настроил дашборд Hangfire Dashboard и получил следующую ошибку:
При попытке загрузки приложения произошли следующие ошибки. - Не найдена сборка, содержащая атрибут OwinStartup. - Не найдено ассемблер, содержащего Startup или [AssemblyName]. Стартап-класс. Чтобы отключить обнаружение при запуске OWIN, добавьте appSetting owin:AutomaticAppStartup со значением «false» в web.config. Чтобы указать ассемблер, класс или метод старта OWIN, добавьте appSetting owin:AppStartup с полностью квалифицированным классом запуска или методом конфигурации в вашем web.config.
Решение:
При использовании инициализации на Global.asax.cs, возможно, потребуется отключить обнаружение класса запуска OWIN.
Переходим к сути, начинается туториал:
1: Структура должна соответствовать потребностям Hangfire,Мой проект — .net 4.6.2, То есть вы можете установить Hangfire как обычно, проекты .NET 4.0 не обязательно пытаться, не поддерживаются!
2: Команда nuget следующая:
3: Класс OWIN Startup предназначен для сохранения логики загрузки веб-приложения в одном месте. В Visual Studio 2013 вы можете добавить его, кликнув правой кнопкой мыши по проекту и выбрав пункт меню Add/OWIN Startup Class. Как показано ниже:
Создайте новый Startup.cs файл в корневом каталоге проекта.
4: Конфигурациястрока соединения базы данных, версия SQL Server 2012, которую я использую здесь, конфигурация в web.config следующая:
5: Настройте панель управления Hangfire для доступа к фильтру, создайте новыйHangfireAuthorizationFilter.csФайл.
По умолчанию разрешен только локальный доступ к панели управления Hangfire. Авторизация панели управления должна быть настроена для обеспечения удалёного доступа.
6: Настройте класс Startup.cs, код выглядит следующим образом:
7: Начать проект по созданию сайта
Запустите приложение F5, нажав режим отладки (для этого нужно посмотреть вывод метода Debug.WriteLine). Затем проверьте следующее сообщение в окне вывода, чтобы убедиться, что фоновая обработка началась успешно.
В то же время база данных содержит ещё 11 таблиц, чтобы все задачи выполнялись нормально, и задачи не терялись при восстановлении IIS или перезапуске процесса, как показано на рисунке ниже:
http://<your-web-app>/hangfire Посетите URL интерфейса Dashboard, чтобы увидеть рендеринг в верхней части статьи.
Прикрепленное использование
Пожар и забытие (опубликовать/подписаться)
Это основной тип фоновой задачи, которую выполняет очередь постоянных сообщений. Когда вы создаёте задачу публикации/подписки, задача сохраняется в очереди по умолчанию (очередь по умолчанию — «Default», но поддерживается несколько очередей). Несколько выделенных сотрудников слушают эту очередь, забирают задачи и выполняют задачи.
Задержка
Если вы хотите задержать выполнение определённых задач, вы можете использовать следующие задачи. После заданного времени задержки задача ставится в очередь и выполняется как задача публикации/подписки.
Петля
Чтобы вызвать метод по периодичности (часы, дни и т.д.), используйте класс RecurringJob. В сложных ситуациях вы можете использовать выражения CRON, чтобы указать запланированное время обработки задач.
Непрерывный
Непрерывность позволяет определять сложные рабочие процессы, связывая несколько фоновых задач вместе.
Официальная ссылка на документацию:Вход по гиперссылке виден.
(Конец)
|