Это не идеально, но вы можете наследовать все свои страницы от базовой страницы (страницы, которая наследует System.Web.UI.Page и последующие страницы наследуются от этого), и при каждой загрузке страницы (в базовой странице) вы можете проверить таблица базы данных задач, которые должны выполняться на определенных таймфреймах. Если при заданной загрузке страницы задание, которое должно быть выполнено, выбрано в определенный момент времени и соответствует (или уже прошло) странице, запрошенной, вы можете запустить ее в это время.
К сожалению, это зависит от того, посетит ли пользователь ваш сайт в то время, когда вы хотите, чтобы работа была запущена. Кроме того, еще одним недостатком может быть то, что если пользователь, который запросил страницу, может ожидать, если ваша работа выполняется синхронно с выполнением оставшейся части страницы.
Надеюсь, это поможет.