同一个worker启动多个timer,前面的timer异常退出,后面的也不执行了。

youwuku

同一个worker启动多个timer,前面的timer异常退出,后面的也不执行了。不知道哪位有更好的解决方案。

1675 1 0
1个回答

blogdaren

对报告异常的代码不能充分确定其按预期运行的话,把相应的代码try....catch...起来。

  • youwuku 2020-08-18

    可以是可以,不够完美。或者这样说,每个time一个进程怎么建立?

  • blogdaren 2020-08-18

    1、捕获异常只是辅助代码优雅运行的手段,而解决异常本身才是根本;
    2、每个进程内都可以独立运作一个或多个定时器,并且进程之间都是彼此隔离互不影响。

  • youwuku 2020-08-19

    感谢解答!比方:我们整理了一个公用的定时任务系统,负责整系统的定时处理,该系统会动态调用相应某块的类和方法完成他们的任务,具体有多少个任务也是不定的,可以用配置往里加。某天子模块的开发人员在他的代码里加了一个exit,所有其他子模块执行的timer就歇了。当然还有很多办法,比方定个制度,必须try catch,必须不能用exit等等,但这样不是很合理。

  • blogdaren 2020-08-19

    提前采取必要的各种安全措施是非常有必要的,不过我觉得你想的太复杂了,按照你这个逻辑说的话,那永远都是“死循环”套进去出不来了,更解决不了问题;一切都是和现实生活中模型相匹配的,抛开程序来说吧,不论是什么玩家玩什么,任何玩家都得遵守相应的游戏规则不是? 但是总有玩家不按套路出牌的,那怎么办?按规则办事,若再犯,只好触发规则外的更严厉的惩罚规则,以此迭代。【所以比如基于workerman开发应用前,有关技术主管有责任并要明确告知开发者各种注意事项比如坚决禁止使用exit,否则就等着被KO吧,就这么简单】

  • youwuku 2020-08-19

    感谢感谢!

年代过于久远,无法发表回答
🔝