Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 61378|Відповідь: 6

[ASP.NET] asp.net навчальний посібник з Hangfire Framework для фонового завдання

[Копіювати посилання]
Опубліковано 24.05.2019 09: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 або [AssemblName]. Стартап-клас.
Щоб вимкнути OWIN launch discovery, додайте appSetting owin:AutomaticAppStartup зі значенням "false" у вашій web.config.
Щоб визначити асемблер, клас або метод для OWIN startup, додайте appSetting owin:AppStartup з повністю кваліфікованим класом запуску або назвою методу конфігурації у вашому web.config.



Рішення:

При використанні ініціалізації на основі Global.asax.cs також може знадобитися вимкнути виявлення класів запуску в OWIN.

Переходимо до суті, починається навчальний матеріал:

1: Структура має відповідати потребам підпалового вогню,Мій проєкт — .net 4.6.2, Отже, ви можете встановити Hangfire звичайним способом, проєкти .NET 4.0 не потребують спроб, не підтримуються!

2: Команда nuget виглядає так:

3: Клас запуску OWIN розроблений для збереження логіки завантаження веб-додатків в одному місці. У 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 2019-5-24 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 09:45:31 |

Підтримайте, навчіться ним користуватися
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com