小记:
1.把作业队列的概念扩展为作业池JobPool,提供GetJob、PutJob两个最基本的抽象接口定义。(或者加上GetJobs、PutJobs)。
任何实例化的服务必须有一个集成至JobPool的派生类,至于GetJob和Putjob可以多样化实现,这样就可以支持多种存储结构,包括DB、网络、内存、磁盘文件等,但是对于不可靠的存储介质,例如DB、网络等要充分考虑调用的阻塞问题,需要超时保护。同时,这样抽象可以做到作业调度策略的多样化,可以先进先出、后进先出、小作业先出、大作业先出、响应比高者先出、随机等等。
2.想办法在Command对象中引入除了启动和停止以外的“控制”的概念,包括流量、占用资源等。
3.实现线程池。
4.充分考虑好服务和服务之间的关系,包括在启动、终止、运行过程中的依赖关系。
5.Job的拷贝控制
6.回调函数的继承体系
注意:
现在还没有解决服务循环依赖的问题,例如A服务的输入是B服务的输出,A服务的输出是B服务的输入。