在上文生信分析系统开发 - 5 生信分析流程服务器端运行 解决了设计好的流程在分析服务器上运行的问题,随之而来就衍生出的新需求:
一、批量分析流程的运行顺序
流程输入文件是按照样本编号来匹配运行的,运行顺序就取决于样本信息
二、分析流程的过程控制
一、批量样本分析流程的运行顺序:
依赖于样本的优先级和输入的顺序先后,每次从数据库取出未完成分析的样本列表,按照优先级从高到低,样本输入先后顺序排序。
每次列表中取最上面一个,去指定目录里匹配输入文件,如果输入文件符合匹配要求,立即启动pipeline,开始流程分析。同时更新该样本状态为正在分析,这样下次排序时候就不会重复获取该样本了。
其实就是一个带有优先级参数的先进先出的堆栈
二、分析流程的控制
前文描述了如何将设计好的pipeline运行于服务器,如果要监控整个运行过程,就需要创建一个守护线程,如果用户操作停止分析,这时候守护进程就要终止运行进程,然后报错并返回。
同时,这个守护线程,要负有和前端通信,统计每个分析任务的运行时间,检查分析任务输出是否符合要求等等。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。