关于定期执行的问题

chenmozhijin 2015-07-15 09:23:21
大家好:
我的程序每月1日会执行一次,但是如果在30日那天因为各种原因(比方说程序死了,机器挂了等等),程序在2日开起来了就不会再执行了,我想问的是怎么让程序去发现1日没有执行过然后自动补执行。我的程序主要功能是生成前一月的报表写入数据库的对应表里。表里的有一个字段是记录报表日期的,比方说7月1日执行生成6月的报表表里的一个字段会是2015-06-01。我想过带着日期去表里查有没有数据没有的话就补执行,但是有一种极端的情况,假设我这程序2月25日死掉了,但是没人发现,一直到8月份才发现,那中间补的数据就太多了。而且上面我说的方法写起来也比较复杂,所以想请大家帮我想想有什么好方法。谢谢大家了。
...全文
109 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenmozhijin 2015-07-15
  • 打赏
  • 举报
回复
谢谢各位的回复,我知道该怎么做了。谢谢以上给我建议的朋友。
chenmozhijin 2015-07-15
  • 打赏
  • 举报
回复
TO sp1234 你要说我懒那我只能说,我只能呵呵了。可能是我自己想的太复杂,经验没你丰富。你怎么能这么主管的认为别人懒呢? 而且数据量很大按照你说的做个循环,我在想是不是会耗时太多。另外引用马云的一句话,这个世界是有懒人推动的,希望你以后不要这么主管的认为别人懒,也许别人刚入行别人经验没你丰富。不要拿着你的层次去比较别人。谢谢。如果哪里说的不对还请原谅,我只是不太喜欢那种很主观的人。
wc_ling 2015-07-15
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
[quote=引用 1 楼 wc_ling 的回复:] 给程序做一个执行标记不就行了,大概的意思是程序在执行插入后对应生成一个文本什么的(这随便你用什么)只要让自己的程序知道本用有没有执行过插入操作就行了。程序在执行前读一下该标记,如果有就是执行过了,没有就补冲执行。标记每月初或月末复位下
他有“标记”。 只不过他愿意检查“上个月是否做过计算”,而懒得从“2月份是否做过计算”开始循环检查一遍。[/quote] 哦,懒这种情况没有好办法。。。。
  • 打赏
  • 举报
回复
引用 楼主 chenmozhijin 的回复:
我想过带着日期去表里查有没有数据没有的话就补执行,但是有一种极端的情况,假设我这程序2月25日死掉了,但是没人发现,一直到8月份才发现,那中间补的数据就太多了。
你知道吗,电脑就是干这个活计的。如果你“带着的日期5月1日”,那么电脑就会去查6月以后有没有统计过5月份的数据(如果统计过,那么一瞬间就结束了;如果没有统计过,就会统计)。然后如果你再”带着日期6月1日”去让电脑去查7月份以后没有统计过6月的数据........电脑并不嫌累,嫌累的是你!
  • 打赏
  • 举报
回复
引用 1 楼 wc_ling 的回复:
给程序做一个执行标记不就行了,大概的意思是程序在执行插入后对应生成一个文本什么的(这随便你用什么)只要让自己的程序知道本用有没有执行过插入操作就行了。程序在执行前读一下该标记,如果有就是执行过了,没有就补冲执行。标记每月初或月末复位下
他有“标记”。 只不过他愿意检查“上个月是否做过计算”,而懒得从“2月份是否做过计算”开始循环检查一遍。
  • 打赏
  • 举报
回复
多写2、3行代码就说“太多了”(就是把一个已经写好的方法改为最外面增加一个嵌套for循环语句而已),那也就没法说你什么了。
exception92 2015-07-15
  • 打赏
  • 举报
回复
写一个服务程序。不过还是建议 能将你的定期执行时间给记录到 单独的一张表A;当然还有日志表,如果出现异常,如3楼所说,还要有一个自启动程序服务,检测程序的是否运行,运行的话就根据 A表中的 最后日期去 查询数据 并插入表;
wc_ling 2015-07-15
  • 打赏
  • 举报
回复
至于程序没有执行几个月后才发现,我想你只能做一个后台服务什么的来实时检测程序是否执行过,在尝试自动重启程序。。。。如上道理
  • 打赏
  • 举报
回复
你的程序就应该设置成根据传入日期执行的,这样就算发现没执行,也可以通过传入日期来重新执行
wc_ling 2015-07-15
  • 打赏
  • 举报
回复
给程序做一个执行标记不就行了,大概的意思是程序在执行插入后对应生成一个文本什么的(这随便你用什么)只要让自己的程序知道本用有没有执行过插入操作就行了。程序在执行前读一下该标记,如果有就是执行过了,没有就补冲执行。标记每月初或月末复位下

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧