У меня работает простая рабочая роль Azure, которая выполняет задачу каждые несколько секунд. Ниже приведен код, позволяющий это сделать.
public override void Run()
{
try
{
while (true)
{
DoSomething();
System.Threading.Thread.Sleep(3000);
}
}
catch (Exception ex)
{
Log.Add(ex, true);
}
}
Теперь я бы хотел добавить вторую задачу DoSomethingElse (), которая запускается один и только один раз в день. Я придумал несколько способов сделать это:
Первые два решения кажутся мне очень хрупкими без дополнительного кода для работы с ситуациями, когда служба останавливается и перезапускается. Третье решение кажется мне потенциально излишним.
У меня вопрос: как лучше всего планировать задачи с разными интервалами в пределах одной рабочей роли Azure? Я немного предпочитаю придерживаться чистого .NET и не использовать стороннюю библиотеку (хотя я не исключаю этого).
Примечание, № 3 выше исходит из этого более старого вопроса Рекомендовать библиотеку планирования задач C #