фоновая задача | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Есть программа. Полный текст приводить не буду
![]()
Некий код должен запускаться каждый час. В примере выше, это код Console.WriteLine("Запущено"). Код не боевой, в том смысле - что он не с продакшен-программы. Так вот. На мой взгляд есть ненулевая вероятность, что таймер не сработает в нужное время. Т.е. большую часть времени он будет работать нормально, но иногда может сбоить. Косвенно это подтверждается, если удалить паузу, или сделать её маленькой (например, 1 тик). Собственно, вопросы - как можно действительно доказать, что код проблемный? И, можно ли как то изменить этот код, что бы таймер всегда срабатывал? P.S. В оригинале это класс, отнаследованный от BackgroundService. P.P.S. Сразу скажу - что такое Quartz.NET знаю, как из windows-планировщика задачи запускать, тоже знаю. Вопрос не об этом. Исправлено 1 раз(а). Последнее : S-type, 28.04.20 23:55 ![]() |
Re: фоновая задача | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вот этот вариант и надо анализировать - и с изначальными async-ами, а вовсе не переделку на консольную прогу и синхронный рабочий цикл в рамках одного потока. Мне кажется что это будут две очень большие разницы... ------------------ WBR, Igor ![]() |
Re: фоновая задача | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Выкинул timer - без него всё работает
![]() ![]() |
Re: фоновая задача | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Архитектура BackgroundService чутка по ссылке описана. Примитивный цикл с анализом необходимости завершения и фиксированной задержкой между итерациями есть в примере - дополнить его твоим анализом крон-расписания не сложно. Главное понять как это хозяйство будет работать в рамках всего процесса веб-приложения. Кварц это всё же более сложная штука, да и по стеку (реализован на "старых добрых" Thread-ах) это не модное/современное/молодёжное
![]() Посмотри на альтернативы, если уж задумаешься о переписывании - типа Hangfire (правда это ещё более сложная и объёмная штука - но для систем где планировщик это важная часть функционала, а не мелочь прилепленная сбоку он может быть гораздо лучше приспособлен). docs.microsoft.com ------------------ WBR, Igor ![]() |
Re: фоновая задача | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Несколько раз перечитывал... Ну и что, что не модное... Главное - рабочее, и опыт работы с ним есть. Спасибо - гляну. ![]() |
Re: фоновая задача | |
---|---|
sphinx Сообщений: 32001 Откуда: Екатеринбург Дата регистрации: 22.11.2006 |
+1 Игорь или пытается абсолютно всех сравнить с собой, или что-то не понимает. ![]() ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: фоновая задача | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Вот искренне не понимаю, при чём тут Игорь? Зачем подобные переходы на личность? При этом 0 слов по сути вопроса... ![]() |
Re: фоновая задача | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну если на его косяки уже нарывался и знаешь как обходить (или уверен что в данном случае они не повлияют никак), то в принципе почему бы и нет ![]() Но в общем случае, если всё же речь про систему на core, и вопрос не поддержки а переделки, рефакторинга, имеет смысл попробовать что-то поновее. ------------------ WBR, Igor ![]() |
© 2000-2025 Fox Club  |