Удобная навигация по видео :) 0:00 - Начало 0:30 - Background jobs 1:52 - NuGet Hangfire 2:14 - Топ возможностей Hangfire 4:02 - Открываем Visual Studio 2019 9:52 - Пример Fire-and-forget jobs 13:54 - Пример Delayed jobs 17:19 - Пример Recurring jobs 20:00 - Пример Continuations 23:34 - Завершение
Спасибо за видео. Я так понимаю, чтобы активизировать background job из Hangfire, нужно вызвать метод сервиса. А есть ли возможность автоматической активации джоба (к примеру Recurring) при запуске сервиса? Т.е. чтобы при запуске такого сервиса джоб уже был запущен и работал. И можно ли в админке активировать джобы, которые еще не были вызваны в соответствующих методах? Можно ли в адмике управлять временем запуска отложенного джоба (например сдвинуть на минуту)?
Привет! с Console.WriteLine() - понятно)) (слишком просто) А вот, например, у меня движдок по генерации отчётов (отчёт строится долго). Куда должен быть задеплоен мой "репорт-сервис"? Или я тригерю событие запуска генерации отчёта, и подписываюсь на событие завершения этой задачи?
Привет! Спасибо за отличный вопрос. Подходы к реализации "репорт-сервиса" могут быть разными. Ваш вариант тоже имеет место быть. В общем случае, архитектура может выглядеть так - клиент отправляет запрос на генерацию отчёта и подписывается на событие о завершении задачи (например, по id). Сервис отчётов выполняет генерацию и делает оповещение подписчиков на событие. Клиент, при получении оповещения, выполняет свою логику (например, высылает отчёт на e-mail). Деплой "репорт-сервиса" можно сделать где вам удобно, например в Kubernetes в облаке.
Здравствуйте! Да, вот подробное описание с официального сайта Hangfire: docs.hangfire.io/en/latest/background-processing/processing-jobs-in-console-app.html
@@codaza-channel спасибо большое за оперативный ответ, я сделал все согласно данной документации, но не понимаю как вывести интерфейс хенфайра (dashboard), не могли бы подсказать, на гите искал, но не смог найти имено по console app CORE
@@codaza-channel спасибо, но решения как такового там нет. На гите хорошо описано, как пользоваться консольной версией, только для framework 4.5, вместе с выведением интерфейса, но так как главный проект у меня на CORE, то все время вылезают какие то ошибки, job-проект перевел на console app CORE , но теперь проблемы с выведением интерфейса((((((
Если у Вас есть необходимость в использовании IIS Express, Вы можете без проблем делать это. Просто выберете IIS Express в выпадающем списке и запустите проект. Скорее всего, в браузере у Вас откроется Swagger, URL будет выглядеть примерно так: localhost:44309/swagger Вам нужна админка Hangfire, для этого используйте такой URL: localhost:44309/dashboard Обратите внимание на порт, в моём случае это 44309. Если Вы хотите, чтобы ссылка с админкой Hangfire открывалась по умолчанию, зайдите в конфигурационный файл в launchSettings.json и в параметре "launchUrl" поменяйте значение "swagger" на "dashboard" для профиля "IIS Express". Обязательно сделайте полное сохранение проекта (Ctrl+Shift+S) и rebuild (Ctrl+Shift+B), иначе конфигурационный файл launchSettings.json может не примениться с первого раза.
Куль, а я все юзаю Microsoft.Extension.Hosting Здесь конечно все получше. А что будет если я добавлю во второй сервис hangfire который смотрит на ту же базу данных ? Он в старые таблицы будет смотреть верно ?
Да, сервисы будут подключаться к одной базе данных. Но это не очень хорошая практика, так как каждый сервис должен быть максимально автономным и иметь собственную базу данных, если это необходимо.
Когда мы задаём значение интервала повтора, берётся некоторый отступ от времени создания задачи. В нашем случае, отступ составил 2 часа. То есть, в расписании мы видим, что очередное исполнение задачи произойдёт через 2 часа. Если бы мы выбрали не Cron.Daily, а Cron.Minutely (каждую минуту), то отступ составил бы несколько секунд. В любом случае, расписание будет строго исполнено и, если задаче надлежит быть исполненной раз в сутки, она будет исполнена раз в сутки.
Удобная навигация по видео :)
0:00 - Начало
0:30 - Background jobs
1:52 - NuGet Hangfire
2:14 - Топ возможностей Hangfire
4:02 - Открываем Visual Studio 2019
9:52 - Пример Fire-and-forget jobs
13:54 - Пример Delayed jobs
17:19 - Пример Recurring jobs
20:00 - Пример Continuations
23:34 - Завершение
Эталонное объяснение работы с хенгфайром ! Отдельный лайк за успокаивающую музыку, очень в тему. 👍
спасибо, как раз столкнулся с такой необходимостью. полно и без воды изложено. лайк подписка
Очень полезный и качественно изложенный материал. Большое спасибо!
Максим, благодарю за положительный комментарий, это очень мотивирует на создание нового материала. Впереди много интересного :)
Спасибо. Библиотеку Hangfire спер себе в коллекцию ))))
Рад, что обзор получился полезным. Сам очень люблю её использовать. Супер удобный и бесплатный функционал, да еще и open source.
Мегаполезно! Спасибо большое.
Не много помучался, но все получилось спасибо.
Спасибо за видео. Я так понимаю, чтобы активизировать background job из Hangfire, нужно вызвать метод сервиса. А есть ли возможность автоматической активации джоба (к примеру Recurring) при запуске сервиса? Т.е. чтобы при запуске такого сервиса джоб уже был запущен и работал. И можно ли в админке активировать джобы, которые еще не были вызваны в соответствующих методах? Можно ли в адмике управлять временем запуска отложенного джоба (например сдвинуть на минуту)?
Thanks it was very clear and concise!
You are welcome anytime!
Привет, чёткий видос. (Чтобы было на русском нужно кодировку поменять, например на utf-8)
лучший
Очень круто! Спасибо!
Пожалуйста 🙂 Спасибо Вам за комментарий.
спс за мануал!
а с Hangfire с SQLite можно работать?
Раскручивайся, плиз. Хорошо объясняешь. Спасибо.
Спасибо за высокую оценку :)
Привет!
с Console.WriteLine() - понятно)) (слишком просто)
А вот, например, у меня движдок по генерации отчётов (отчёт строится долго). Куда должен быть задеплоен мой "репорт-сервис"?
Или я тригерю событие запуска генерации отчёта, и подписываюсь на событие завершения этой задачи?
Привет! Спасибо за отличный вопрос. Подходы к реализации "репорт-сервиса" могут быть разными. Ваш вариант тоже имеет место быть. В общем случае, архитектура может выглядеть так - клиент отправляет запрос на генерацию отчёта и подписывается на событие о завершении задачи (например, по id). Сервис отчётов выполняет генерацию и делает оповещение подписчиков на событие. Клиент, при получении оповещения, выполняет свою логику (например, высылает отчёт на e-mail).
Деплой "репорт-сервиса" можно сделать где вам удобно, например в Kubernetes в облаке.
@@codaza-channel спасибо за ответ!
Когда выйдет продолжение?
Продолжение темы Hangfire не планировалось. Продолжение чего Вы ожидаете?
@@codaza-channel elastik, logstash, kibana
здравствуйте, можете дать ссылку на туториал по устоновке хенгфайра на console app (core), не смог найти адекатной инфы??
Здравствуйте! Да, вот подробное описание с официального сайта Hangfire: docs.hangfire.io/en/latest/background-processing/processing-jobs-in-console-app.html
@@codaza-channel спасибо большое за оперативный ответ, я сделал все согласно данной документации, но не понимаю как вывести интерфейс хенфайра (dashboard), не могли бы подсказать, на гите искал, но не смог найти имено по console app CORE
Вот здесь обсуждают этот вопрос: discuss.hangfire.io/t/how-to-access-hangfire-dashboard-when-jobs-are-setup-via-console-application/7559
@@codaza-channel спасибо, но решения как такового там нет. На гите хорошо описано, как пользоваться консольной версией, только для framework 4.5, вместе с выведением интерфейса, но так как главный проект у меня на CORE, то все время вылезают какие то ошибки, job-проект перевел на console app CORE , но теперь проблемы с выведением интерфейса((((((
Посмотрите еще тут: github.com/HangfireIO/Hangfire/issues/1181 Мне кажется, пользователь pieceofsummer даёт ответ на проблему.
а почему через IIS Express не работает??...заранее спасибо
Если у Вас есть необходимость в использовании IIS Express, Вы можете без проблем делать это. Просто выберете IIS Express в выпадающем списке и запустите проект. Скорее всего, в браузере у Вас откроется Swagger, URL будет выглядеть примерно так: localhost:44309/swagger Вам нужна админка Hangfire, для этого используйте такой URL: localhost:44309/dashboard Обратите внимание на порт, в моём случае это 44309. Если Вы хотите, чтобы ссылка с админкой Hangfire открывалась по умолчанию, зайдите в конфигурационный файл в launchSettings.json и в параметре "launchUrl" поменяйте значение "swagger" на "dashboard" для профиля "IIS Express". Обязательно сделайте полное сохранение проекта (Ctrl+Shift+S) и rebuild (Ctrl+Shift+B), иначе конфигурационный файл launchSettings.json может не примениться с первого раза.
@@codaza-channel спасибо большое
Куль, а я все юзаю Microsoft.Extension.Hosting
Здесь конечно все получше.
А что будет если я добавлю во второй сервис hangfire который смотрит на ту же базу данных ? Он в старые таблицы будет смотреть верно ?
Да, сервисы будут подключаться к одной базе данных. Но это не очень хорошая практика, так как каждый сервис должен быть максимально автономным и иметь собственную базу данных, если это необходимо.
Видео класс было полезно, но музыка фоном это лишнее.
А есть документация по этой бибиотеке,ну или хотя бы о методах которые она содержит
?
Да, вот официальный сайт этой библиотеки: www.hangfire.io там можно прочитать обо всех подробностях.
@@codaza-channel Спасибо)
А на postgres
два раза заснул на этом видос
Cron.Daily, но вызов через 2 часа, это как? 18:50+
Когда мы задаём значение интервала повтора, берётся некоторый отступ от времени создания задачи. В нашем случае, отступ составил 2 часа. То есть, в расписании мы видим, что очередное исполнение задачи произойдёт через 2 часа. Если бы мы выбрали не Cron.Daily, а Cron.Minutely (каждую минуту), то отступ составил бы несколько секунд. В любом случае, расписание будет строго исполнено и, если задаче надлежит быть исполненной раз в сутки, она будет исполнена раз в сутки.
@@codaza-channel спасибо за ответ! пересмотрел все видео вчера за один присест, крутая подача и никакой воды
бесполезное видео на visual studio 2022