Мы хотели бы иметь некоторые периодические действия, выполняемые нашей службой WCF, размещенной в IIS. Каков наилучший способ сделать это? Создание таймера не выглядит хорошим решением. Создание службы Windows, которая будет вести себя как своего рода сердечный ритм, выглядит как проблемное решение, но оно все равно плохо пахнет. Какой подход будет хорошим решением этой проблемы?Периодические задачи внутри службы WCF, размещенные в IIS
ответ
Это зависит от того, что вы пытаетесь сделать. Если это действие очистки, связанное с базой данных, например. удаление сиротских тележек для покупок, вы можете запланировать работу для этого в своей базе данных по выбору, например, очень надежный механизм работы SQL Server. Служба Windows будет отличным кандидатом, если это действие на основе ОС, такое как периодическая очистка/удаление файлов и т. Д. Поскольку служба IIS/WCF обычно больше предназначена для обработки внешних ответов, я не думаю, что было бы неправильно использовать уровни обслуживания ОС или БД для вашей задачи.
Раньше я выполнял такие задачи в мои PHP-дни, когда планировал отправить электронное письмо в определенное время. После многих месяцев возиться (в основном, пытаясь обработать вызовы на страницу, которая может никогда не появиться), я в конце концов пришел к выводу, что по существу безгосударственный бит кода не является местом для этого, и запланировал задание cron для каждого из них ночь.
Я бы порекомендовал пойти по маршруту запускаемой извне работы (либо в SQL, и в Windows Service, и т. Д.), И обработать ваши операции оттуда. Боль, как я знаю, к моей стоимости, просто не стоит возврата.
Я много боролся с этим, и в некоторых случаях, когда требуется очистка, просто выполнялась асинхронная (фоновая) задача на обратной стороне общей функции для очистки периода, то есть On GetCommonList(), Я делаю чек в настройках/appsetting для lastrun, а затем пинаю его один раз в день или каждые 5 минут и т. Д. Таким образом, если приложение переходит на более зеленые пастбища (что происходит), мне не нужно беспокоиться о каких-то затяжных задачах. Не работает во всех случаях, но безопасность и т. Д. Также автоматически заботятся - в то время как услуги и т. Д. У вас могут быть проблемы с этим. Просто мой 2c.
- 1. Как изменить конфигурацию службы WCF, если службы, размещенные в IIS?
- 2. Относительные пути в службе WCF, размещенные в IIS
- 3. Проблемы с WCF (net.tcp), размещенные в IIS 7.5
- 4. Хост службы WCF в IIS
- 5. Хостинг службы WCF в IIS
- 6. Возможно ли инициировать периодические события из службы WCF?
- 7. NodeJS Периодические задачи
- 8. VB 2008 Периодические задачи
- 9. Рефакторинг Java Периодические задачи
- 10. Настройка службы WCF на IIS
- 11. Хостинг службы WCF на IIS
- 12. Хостинг службы WCF на IIS
- 13. Периодические задачи в сельдерею 4.0
- 14. IIS, принимающий ошибку службы WCF
- 15. Пробуждение службы WCF, выполняющейся внутри службы windows
- 16. Невозможно вызвать методы службы WCF, размещенные в Azure с https
- 17. Две службы WCF, размещенные в одном консольном приложении
- 18. Услуги WCF, размещенные в IIS, каковы параметры добавления дополнительных данных в журналы IIS
- 19. Жизненный цикл службы WCF, размещенный в IIS
- 20. Развертывание службы WCF в IIS 5.1
- 21. Ошибки Хостинг службы WCF в IIS 6.0
- 22. установка службы WCF в IIS (клиентах)
- 23. WCF Хост службы в IIS 7.0
- 24. службы WCF Хостинг в IIS System.Runtime.InteropServices.SEHException
- 25. Развертывание службы WCF в IIS 7.5
- 26. хостинг WCF библиотеки службы в IIS 7
- 27. сельдерея периодические задачи не запускающие
- 28. Периодические задачи Node.js с кластеризацией
- 29. Celerybeat - Периодические задачи с Django
- 30. Создание задачи Async внутри службы
Чтобы прояснить это немного. Это не задача обслуживания, а задача, которая должна выполняться один раз в час, чтобы проверить, есть ли у нее какие-либо подписки для завершения, некоторые электронные письма для отправки и такие вещи. –