Это интересный вопрос. Итак, как мы справились с чем-то похожим в нашей команде. Мы использовали таблицу, в которой хранились все действия. Например, чтобы иметь эти столбцы:
ActionId, UserId, Description, Timer, Priority, Recurring
Теперь у нас есть база данных, где мы храним наши действия. Я думаю, что вам нужно из этой базы данных для правильного запроса данных. Например:
ActionId, UserId, Description, Timer, Priority, Recurring
1 2 test 1 1 1
Таким образом, вы можете фактически прочитать данные, какие захотите, и запросить действия, которые должны быть выполнены. Вышеуказанное действие будет выполняться каждую минуту.
Причина, по которой мы используем базу данных, заключается в том, что некоторые действия могут иметь очень длительное время ожидания, например, неделю, поэтому использование кеша не было оптимальным.
Так как же вы читаете эти данные?
Вы создаете другое небольшое приложение (для масштабируемости), которое считывает из базы данных, как вы ее определили. Поэтому в основном рабочий процесс для вашего основного приложения. net будет:
user creates task ----> .net core app saves it on database
И рабочий процесс для вашего основного консольного приложения. net, который будет читать из базы данных:
define the timer to read the table ----> reads DB ----> calls your method
Этот подход, конечно, более жестко запрограммирован, но в то же время он не зависит от другой среды или библиотеки.