Какой самый простой способ запланировать запуск функции в определенное время с помощью C #

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

Они не всегда будут отправляться с фиксированными интервалами, и может потребоваться отправить более одного сообщения одновременно.

В этом случае он просто поставит их в очередь и отправит в том порядке, в котором они были созданы.

Проще всего иметь функцию, которая запускается снова и снова, после завершения она просто запускается снова

Итак, она:

  • Начать выполнение и проверять текущую дату / время
  • Проверить наличие неотправленных сообщений
  • Отправить все сообщения, которые должны быть отправлены до и до момента его запуска
  • Начать все сначала и принять текущую дату / время

Моя проблема с этим в том, не так ли просто было бы ужасно неэффективным, если бы метод постоянно работал, возможно, часами или днями, не отправляя фактически сообщение.

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

Есть ли лучший способ запланировать что-то подобное?

Или просто проделайте то же самое, но каждый раз, когда он запускается, заставляйте его ждать 5 минут перед повторным запуском.

Предлагает ли Workflow 4 что-нибудь подходящее для планирования?

5
задан Dan Harris 18 November 2011 в 14:04
поделиться