最近发觉Win计划任务得了羊癫疯。我的博友圈程序设定每天雷打不动在5点24(早上醒来瞧一瞧)、11点24(午饭时瞧一瞧)、17点24(晚饭时瞧一瞧)、23点24(夜猫子瞧一瞧)四个时间点执行,可实际运行,有时凌晨5点24准时跑完了,上午11点24直接无视不干活,等到下午17点24又诈尸般自己动起来。网上搜索翻遍找同类故障的解决方案,什么重注册任务、调权限、改触发器,统统不管鸟用。

干脆禁用计划任务,直接重写程序代码注册成Windows系统服务。这样就算重启服务器,服务也能自动拉起,至少比看计划任务脸色强。

想起2016年做公司订单管理系统时,用计划任务搞分期账单催收稳如老狗从来没有出现这类问题。如今退出一线开发队列,这类技术问题反而接二连三蹦出来。现在我的原则很干脆:遇到程序问题五分钟内搜不到解决方案直接改变方式别浪费时间。
湘公网安备43062302000172号
评论 (评论须知)
这种迭代快的bug难寻,只能去外网论坛找 问
回复 @2broear :已经对win失望了,系统底层错误
确实有这个问题,我一般新设置的任务要观察好多天才放心。我觉得不太重要的可以用计划任务,重要的要用后台服务或者程序一直运行。
回复 @静风说 :是的,所以我不用计划任务了。
为啥都24呢 定这么时间多会不会太……
回复 @刘郎 :单纯避开整点,大部分网站习惯整点进行备份而已,还有些同学喜欢xx:30分备份,所以24只是随意选的个时间。
岂不是电脑得一直开着了
回复 @满心 :有一种服务器叫WinServer???,难道Server要关机嘛??
回复 @全局变量 :哈哈,那就不用了,毕竟也是服务器
「想起2016年做……从来没有出现这类问题」那只能说你用得少。我以前公司在2015年的时候,因为开发的软件是跑在客户机Windows上的,计划任务就从来没正常运行过。同理Windows系统服务也经常抽风。 最后的解决方案是把Linux的cron移植到Windows上跑。
回复 @石樱灯笼 :之前计划任务用了好些年都没故障。计划任务的故障确实不好排查,就给个0x0000之类的故障码非常的笼统。系统服务我可就更加没有遇到过抽风问题了。这玩意儿本质就是起个24小时都在线的进程,如果服务起不来只能说代码写的有问题。
你最后的方案才是比较好的解决方案,Windows服务只要能顺利跑起来,后续就能规避一些说不清道不明的“人品问题”
回复 @Yang :可以是可以,24小时的进程也是耗费了一些系统资源。
回复 @全局变量 :开销不大的话就忽略掉吧。多检查一下执行期用到的资源释放情况等,性能损耗方面httpclient避免多次new之类的,感觉应该还好的。当给自己打发打发时间,也挺有意思的。
回复 @Yang :今天把程序已经改了,单独写了一个时间监控的,到了指定时间就启动rss.exe,发现它执行结束直接把它的进程给干了。简单干脆。一个单独的时间监控服务起来占用的系统资源还是比较小的。
你的计划任务执行条件是啥呀?会不会电源什么的设置了?
回复 @似水流年 :最终的结论就是系统账号权限错乱,懒的弄了。
我对 Windows 的类似功能也不大有信心。有时候还莫名其妙卡死。
回复 @Vind :就是就是,win就是这样莫名其妙的。
纯属门外汉建站还是喜欢用虚机,各种环境都不用操心,不然哪天自己就搞崩了
回复 @hary :虚机资源有限嘛,稍微大点资源的虚机又很贵了
回复 @全局变量 :一个TY博客的话还是占用不了太多资源的,不像WP
回复 @hary :是的,我之前也是用的虚机,后面因为扩展功能就换了。
高精尖~
回复 @虫虫 :别别别,这个词不合适。?
更好奇为啥时24分?
回复 @瓦匠 :单纯的避开整点,因为很多人的系统进行自动备份之类的都是整点,避免他们的服务器在备份时系统资源高占位而导致请求缓慢甚至超时。
这,哈哈哈 我一般直接起个进程,自己去定时。?
回复 @obaby :重启系统不得重新起个进程啦?
回复 @全局变量 :重启?干嘛要重启,哈哈哈。 扔服务器上,一直跑着就是了。
回复 @obaby :那我还是觉得注册为服务还是比较安稳一点,万一要重启不用管什么。?
高级货。
回复 @大峰 :还有更加高级的。
段子 打不过,就加入它们. 应该就是这个策略。 如果第一个评论有奖励,我得时刻刷新。哈哈。
回复 @acevs :这样的话下次给你头像旁边标注个vvvvvvvvvip?
回复 @全局变量 :给我也来标一个(bushi
回复 @晓空 :???
自win10开始,也就是Server 2015及之后,其实就一直有这毛病了,如果想要计划任务靠谱点,最好回到2012r2或者更早 我更习惯于自动登录+登录后自启动,对于10和11,触发全部依靠bat里定时实现,这可能是最为稳妥和省事的法子了(有没有跑崩也一眼就能看出来) win的系统服务在我看来其实挺玄学的……比linux的systemd要不靠谱多(顺便pm2和supervision之类的玩意在我看来也是相当不靠谱的东西)
回复 @晓空 :原来是这样啊,之前似乎是用的2012没发现这个问题,后来因为要升级系统支持ssl tls1.2、tls1.3,系统降级我的博友圈又不支持一些使用新证书的网站了。所以只好弃用计划任务了。先用系统服务试试,看看效果怎么样。
回复 @全局变量 :证书问题其实好解决,你去找台win11把证书全部导出来给老系统装上去就行了,还有就是,根据我的印象来看海外的windows貌似吊销了CNNIC这边的证书,所以有些国内的网站证书在海外是不认的 反正windows自从被阿三接手之后,就各种奇葩问题越来越多……比如Bug11的Explorer崩溃问题自22H2开始,多少年了还没修好
回复 @晓空 :不是证书,是tls是协议导入证书系统也不支持tls1.3