https://github.com/iqiyi/taskmanager
一种支持依赖关系、任务兜底策略的任务调度管理工具。API灵活易用,稳定可靠。轻松提交主线程任务、异步任务。支持周期性任务,顺序执行任务,并行任务等。
https://github.com/iqiyi/taskmanager
android data-passing dependency event parallel-tasks serial-tasks task-dispatcher taskmanager threadpool
Last synced: 17 days ago
JSON representation
一种支持依赖关系、任务兜底策略的任务调度管理工具。API灵活易用,稳定可靠。轻松提交主线程任务、异步任务。支持周期性任务,顺序执行任务,并行任务等。
- Host: GitHub
- URL: https://github.com/iqiyi/taskmanager
- Owner: iqiyi
- License: apache-2.0
- Created: 2020-04-27T07:08:08.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-07-31T15:33:35.000Z (over 4 years ago)
- Last Synced: 2025-03-29T18:08:44.800Z (24 days ago)
- Topics: android, data-passing, dependency, event, parallel-tasks, serial-tasks, task-dispatcher, taskmanager, threadpool
- Language: Java
- Homepage:
- Size: 1.01 MB
- Stars: 482
- Watchers: 18
- Forks: 64
- Open Issues: 3
-
Metadata Files:
- Readme: README-CN.md
- License: LICENSE.txt
Awesome Lists containing this project
README
* [English](README-CN.md)
* [版本信息](https://github.com/iqiyi/TaskManager/wiki/ReleaseNote-CN)Task manager 是一个支持关系依赖的Android任务管理SDK。它具备处理复杂任务依赖关系的能力,可用于加速一些耗时任务执行过程。它支持 "与依赖",“或依赖", 支持”并行任务“、”串行任务“、"事件任务"等等,API 非常灵活易用。除此之外,它还实现了任务兜底机制,为任务异步并发后的稳定性提供了技术支撑。
### 特性
还在到处new Handler 来提交任务?使用TM吧。
```Java
TM.postAsync(Runnable); // 提交任务到子线程
TM.postAsyncDelay(Runnable);
TM.postUI(Runnable); // 提交任务到主线程执行.
TM.postUIDelay(Runnable, int delay);
TM.postSerial(Runnable , String groupName);//相同组名任务,按顺序执行。
TM.cancelTaskByToken(Object);// 取消相同token 的任务。```
#### 1. 任务分发:
* 将任务提交到UI线程或子线程执行。
* 提交任务按照FIFO 顺序执行。(参考 executeSerial)
* 将多个子任务组合成并发任务,并发执行。(ParallelTask)
* 周期性的执行任务。(TickTask)
* 闲时任务调度 (IdleTask , Task.enableIdleRun)
#### 2. 事件与数据分发:

#### 3. 优势:
a) 通过为任务设置依赖关系,将串行执行的任务,尽量可能的异步并发执行。充分利用CPU的运算能力;

b) 任务执行保证:通过在具体业务之前添加"TM.needTaskSync"调用,可确保异步逻辑在具体业务需要时,已执行完成。

c) 任务循环依赖检测:在debug 模式下,内部实现了循环依赖任务检测能力。如果发现循环依赖的情况,程序将给出崩溃提示。
### Getting Started
add dependencies in your "build.gradle" file
``` Java
dependencies {
implementation 'com.iqiyi.taskmanager:taskmanager:1.3.7'
}
```### 任务分析
Lens 可支持TM分析功能。
+ 任务分析功能: 见Lens 任务分析功能。支持展示任务运行时间,任务名等等信息。
+ 任务记录:对接Lens data dump 功能,可在data dump 面板中查看任务状态,包含进行中的任务,等待中的任务,已完成的任务以及任务阻塞时间等等。### 开发指南
* [API document wiki](https://github.com/iqiyi/TaskManager/wiki)
### License
TaskManager is [Apache v2.0 Licensed](http://gitlab.qiyi.domain/licaifu/TaskManger/LICENSE.txt).