我应该怎么安排

how should I do the scheduling

我以前从未编写过 windows 服务或任何调度程序,所以我不知道该怎么做。

我需要编写一个 windows 服务。我的数据库中有一个Report table,我需要每天检查它是否有新的报告添加。报告有接收者和时间设置,例如每月 15 日 14:00,每天 12:35 或每周周三 13:00。我需要在这些时候发送一些报告的电子邮件。

我决定使用Quartz.NET。但是有几件事我不明白。所以我想我会有 2 个工作。一个用于每天检查数据库,查看是否有用户需要的新报告。当我收到它们时,我会根据数据库中的时间使用新触发器创建新的不同数量的作业吗?我是否在第一次日常检查的工作中创建新触发器?我不明白。

例如更新或删除一个报告的时间时,是否需要从调度程序中删除作业和触发器?我很感激你的帮助。我正在使用 VS 2015 和 C#。

当我执行 windows 服务时,我会启动我编写的这个 Quartz 东西吗?抱歉,到目前为止我无法理解所读的内容。

我会推荐 Hangfire IO 而不是 Quartz.net http://hangfire.io/

这是一种更现代的计划作业方法。过去我也使用过 Quartz.net。首先,使用hangfire是不需要服务的。作业是持久的,重试是内置的。语法也更简单。

我用过 hangfire,它非常简单。

但是,Hangfire 目前还不支持 Oracle 数据库。此外,Quartz 在日程安排(日历、结束日期等)方面提供了更大的灵活性。