Как запустить фоновый сервис в веб-приложении - DotNetNuke - PullRequest
2 голосов
/ 27 сентября 2011

Я сделал dnn планировщик и настроил запускать его каждые 1 мин.Это работает, когда я делаю что-то на сайте.Но мне нужно выполнить некоторые действия, когда я не на сайте.Например, вставьте запись в базу данных с текущим временем.Возможно ли это?

Ответы [ 3 ]

5 голосов
/ 27 сентября 2011

В настройках хоста используйте Scheduler Mode = Timer Method

Host Settings - Scheduler Mode

Это заставит планировщик работать в отдельном потоке, который не запускается запросами страниц.

Если планировщик работает в методе таймера, он не будет иметь доступа к текущему HttpContext.

Вам также необходимо убедиться, что DNN поддерживается, а IIS не закрывает приложение из-за неактивности. Правильно установите тайм-аут для пула приложений, и pinging /Keepalive.aspx должен позаботиться об этом. Тем не менее, использование планировщика DNN для критических задач не очень хорошая идея.

См. Также:

1 голос
/ 27 сентября 2011

Выполнение эквивалента задания Cron все еще является проблемой в Windows.

Планировщик DNN будет работать, если вас не очень беспокоит время его запуска. Что вам может понадобиться, это иметь больше логики на вашем конце ... если он работает только каждые 10 минут, или каждый час, или все, что вам может понадобиться, чтобы посмотреть на таблицы базы данных, определить, когда он в последний раз работал, а затем делать все, что нужно сделать, чтобы «догнать». В вашем случае добавьте 60 минут информации против каждой минуты.

Я изо всех сил пытаюсь придумать пример того, почему я просто пишу в таблицу каждую минуту или через какой-то интервал. Если мне это нужно для таблицы соединений или чего-то более удобного для составления отчетов о вас, следует генерировать их большими кусками.

Другой вариант - написать небольшой Windows-сервис .NET, который не так сложен, и запускать его каждую минуту. Это было бы более надежным.

1 голос
/ 27 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...