Kigg项目分析 -- 2.背后的故事
2010-10-10 18:11
363 查看
Kigg这个项目在启动的时候,同时干了很多的是,如创建默认用户,加载后台事件等。到目前为止,我还不能分析出每个事件或者默认功能的作用。在这里只是对加载的机制做以分析。如果能启示大家,我就很高兴的了。
希望在大家还记得在上篇文章中的提到的GlobalApplication类,就是Global.asax.cs文件。在OnStart方法中的Bootstrapper.Run()。这里就是后台处理的开始。这个方法只有一句话IoC.ResolveAll<IBootstrapperTask>().ForEach(t => t.Execute());用一个IOC的方式装载在配置文件中实现了IBootstrapperTask的方法,并启动每个类的Execute()方法用来执行该类的操作。其中StartBackgroundTasks类(也是实现IBootstrapperTask的)的Execute()又装载和执行了实现IBackgroundTask的类,这还是一个以IOC方式装载和执行的操作。
IBackgroundTask接口中,其实只是指定了启动,停止和标记该服务的运行状态的标记。大家可以这样理解,所谓启动就是在一些事件上注册处理方法,而停止就是删除这些方法的注册。例如PingServer类在它的启动方法中是这样写的:
_storySubmitToken = Subscribe<StorySubmitEvent, StorySubmitEventArgs>(StorySubmitted);
这就是说项StorySubmitEvent注册方法StorySubmitted其参数为StorySubmitEventArgs;而停止方法则是:
Unsubscribe<StorySubmitEvent>(_storySubmitToken);
意思就是解除StorySubmitted对StorySubmitEvent注册。
这就是Kigg项目后台处理的基本原理,欢迎指正!
希望在大家还记得在上篇文章中的提到的GlobalApplication类,就是Global.asax.cs文件。在OnStart方法中的Bootstrapper.Run()。这里就是后台处理的开始。这个方法只有一句话IoC.ResolveAll<IBootstrapperTask>().ForEach(t => t.Execute());用一个IOC的方式装载在配置文件中实现了IBootstrapperTask的方法,并启动每个类的Execute()方法用来执行该类的操作。其中StartBackgroundTasks类(也是实现IBootstrapperTask的)的Execute()又装载和执行了实现IBackgroundTask的类,这还是一个以IOC方式装载和执行的操作。
IBackgroundTask接口中,其实只是指定了启动,停止和标记该服务的运行状态的标记。大家可以这样理解,所谓启动就是在一些事件上注册处理方法,而停止就是删除这些方法的注册。例如PingServer类在它的启动方法中是这样写的:
_storySubmitToken = Subscribe<StorySubmitEvent, StorySubmitEventArgs>(StorySubmitted);
这就是说项StorySubmitEvent注册方法StorySubmitted其参数为StorySubmitEventArgs;而停止方法则是:
Unsubscribe<StorySubmitEvent>(_storySubmitToken);
意思就是解除StorySubmitted对StorySubmitEvent注册。
这就是Kigg项目后台处理的基本原理,欢迎指正!
相关文章推荐
- TalkingData灵动分析背后的产品故事
- Kigg项目分析 -- 1.项目的入口
- JUnit4执行cases背后的故事(2)---默认执行器BlockJUnit4ClassRunner源码分析
- JUnit4执行cases背后的故事(1)---JUnitCore源码分析
- 项目开发之故事经典:教授的裤子分析
- 两周内在Github上收获1800+个星:内核层网络栈优化项目Fastsocket背后的故事
- 内核层网络栈优化项目Fastsocket背后的故事
- 36Kr众筹项目比呀比biyabi,调查分析研究报告,背后资方势力的关系梳理
- 36Kr众筹项目比呀比biyabi,调查分析研究报告,背后资方势力的关系梳理
- 36Kr众筹项目比呀比biyabi,调查分析研究报告,背后资方势力的关系梳理
- qps20w背后的设计:秒杀\抢券项目——深度分析与总结
- Asp.net MVC 示例项目"Suteki.Shop"分析之---Controller
- 用nabcd项目需求分析
- vue-cli入门之项目结构分析
- IBM存储业务增长背后的故事
- 项目1:ItcastOA(4):流程说明:岗位管理分析功能,增删改查
- 悠然乱弹:开源中国GIT中Java分类下TOP10项目的活动情况分析
- 最近的一个项目 被别人挂了木马 请高人分析一下
- 第二次作业——结对项目之需求分析与原型设计(1.0)
- 网站项目模型及业务流程分析