需求一:软件要能在操作系统启动后,自动运行
因为操作系统是windows 10,所以最先想到的是windows服务,因为windows服务有个自动启动选项,设为true就行了。
.net做这个最合适了,可以建windows服务项目。
需求二:包含N个任务,要求每天、每周、每月都可以执行,时间可自己设置
面对这个需求,很明显Timer不适合了,最先想到的便是Quartz.net,因为这个东西之前也用过,所以就用它了。满足需求绰绰有余。
有一点需要说明的是,具体时间是保存在数据库里面的,服务在从数据库读取到时间后,还需要将设置的时间转换成cron表达式。
需求三:领导说你能在这个windows服务里面提供web api吗?这样就不用单独的再创建一个接口项目了。
一开始想用HttpListener自己写个简单的http web服务器,毕竟接口就一个。
但是后来想到这种东西应该有别人写好的吧,所以就百度了下,发现Nancy比较合适。
而且,我是通过job将最终需要执行的消息放在队列里面,然后去消费队列。没有用第三方的队列,用的是ConcurrentQueue。
所以如果另外建web项目,就没法消费队列了。
特此记下解决方案,以备后用。