问题描述
程序大概流程,如图所示。
解决方案
解决方案二:
沙发,慢慢看的哦
解决方案三:
这程序流程图画的乱糟糟的判断完毕怎么可以是个双箭头,不是应该循环,回到前面,重新判断吗?任务都结束了,还能回到判断来?你先把所有的双箭头都改成单箭头,逻辑就清楚了
解决方案四:
好吧,图片修改。
解决方案五:
建一张任务表,规定好是否重复执行,执行时间,下次执行时间,然后timer启动不断去扫面这张表就是了
解决方案六:
引用4楼skysurvivor的回复:
建一张任务表,规定好是否重复执行,执行时间,下次执行时间,然后timer启动不断去扫面这张表就是了
谢谢。那这张表最好用什么方式呢?数据库、xml、还是直接放在内存里面?用来循环遍历的队列,用List,还是ConcurrentQueue?
解决方案七:
Quartz.net:
解决方案八:
引用6楼Joyhen的回复:
Quartz.net:
+1,建议了解下这个
解决方案九:
引用5楼xgp0009的回复:
Quote: 引用4楼skysurvivor的回复:
建一张任务表,规定好是否重复执行,执行时间,下次执行时间,然后timer启动不断去扫面这张表就是了谢谢。那这张表最好用什么方式呢?数据库、xml、还是直接放在内存里面?用来循环遍历的队列,用List,还是ConcurrentQueue?
--------------------------------------------------------------任务表,最后一次执行时间,执行频率(每隔N分钟),是否重复执行可要可不要因为既然是任务就多半是重复的吧,,是否正在执行,。。。。其他字段自己看着办,sql,sqllite都可以,这个不是重点,程序启动后扫描这个表,用timer,whiletrue随便,不过建议用whiletrue,因为每个任务执行间隔可能不一样,扫描后得到当前时间,在判断是否已经达到执行频率,如果达到就开起thread(一定要开启线程,让N个任务同时走,不要让走A任务的时候耽误B任务,切记),执行,同时把该正在执行的任务状态修改了。。。。。。执行后不管是执行成功或者是执行失败在把状态修改回来。特别注意一点,程序开始的时候把这个表所有执行状态都修改为"没有执行",防止上次正在执行任务的时候程序挂了或者电脑重启,造成状态值没有被改回来而永远不会激发任务。