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

Вид: 61378|Ответ: 6

[ASP.NET] asp.net обучающий материал по фоновой задаче Hangfire Framework.

[Скопировать ссылку]
Опубликовано 24.05.2019 9:51:10 | | | |
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, а также пакетное выполнение задач.
Как я раньше это делал:

c# инкапсулирует универсальную очередь QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Источник: Architect_Programmer)


В 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, чтобы указать запланированное время обработки задач.


Непрерывный

Непрерывность позволяет определять сложные рабочие процессы, связывая несколько фоновых задач вместе.


Официальная ссылка на документацию:Вход по гиперссылке виден.

(Конец)






Предыдущий:Алгоритм видеоданных делится заметками
Следующий:Запрос отменён: не удалось создать решение для защищённого канала SSL/TLS
Опубликовано 24.05.2019 10:12:25 |
Последний раз этот пост был отредактирован YuAn 24.05.2019 10:20

Хорошая статья, научившаяся
Опубликовано 24.05.2019 10:12:46 |
Поддержка поддержки
Опубликовано 17.09.2021 21:59:44 |

Поддержка поддержки
Опубликовано 26.09.2022 22:20:45 |
Поддержка, научись им пользоваться
Опубликовано 12.11.2022 19:02:23 |

Поддержка, научись им пользоваться
Опубликовано 25.03.2023 9:45:31 |

Поддержка, научись им пользоваться
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com