Android抽象任务管理框架QTaskManager及其使用方式介绍

一、概述

QTaskManager是一个对抽象任务进行调度、分配及管理的简化管理框架,支持并行执行任务、顺序执行任务、按时执行任务、串行执行任务等基本任务操作。
NOTICE:框架是基于Android开发的,但稍加修改可以直接在Java程序中使用(与Android的耦合主要集中在主线程运行部分)。
在框架内,任务被抽象为一个泛型,框架不负责任务的执行细节,只要求调用方提供任务执行能力,并在任务执行开始和结束时通知任务状态即可。
使用QTaskManager做简单的任务调度管理,可以帮我们解决一些比较棘手的细节问题,比如:

  1. 假设有两个接口请求A和B,都会改变本地的数据缓存,要想保证数据缓存不随接口的返回顺序得到不同的结果,我们需要控制两个接口请求的时机,A执行完成后B再执行,或者B执行后A再执行。这时我们需要一个控制器,控制A/B谁先来谁先执行。
  2. 再细化一个场景,接口A执行时,接口B在等待A执行,此时用户再次触发了一个接口B的的操作,我们需要取消之前等待执行的接口B的执行。
  3. 或者,我们需要在300ms后执行接口A,在接口A执行完成后执行接口B,等等……
    类似的需求数不胜数,其实抽象来看就是一个简单的任务调度问题,分别是任务A/B的串联执行、并行执行和按时间规划执行。

QTaskManager就是对执行策略的抽象,支持的就是以上几种执行方式。下面我们来看下,这个框架的架构方式与接口。

二、QTaskManager的类设计

QTaskManager类设计图
- TaskExecutorFactory:框架的对外工厂,可以生成三种任务执行器,分别为:

  1. 默认的任务执行器(createDefaultTaskExecutor):支持顺序执行、串行执行和按时执行任务;
  2. 顺序任务执行器(createSequenceTaskExecutor):对所有添加的任务,按添加时指定的顺序执行,不论任务是不是定时任务,或者指定了某个任务必须在另一个任务完成之后执行,只要使用此执行器,所有的任务都顺序执行;
  3. 串行任务处理器(createSerialTaskExecutor):对所有添加的任务,按添加时指定的顺序一个接着一个执行,同样的,不论任务是不是定时任务,只要使用此执行器,所有的任务都串行执行;
  • ITaskExecutor:框架最终创建出来的任务执行器,在任务执行的过程中,我们对此接口进行操作,包括任务执行的配置,开始/结束任务执行,添加/删除任务等。
  • ITaskComparator&#x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值