The Wayback Machine - https://web.archive.org/web/20201210145920/https://github.com/iqiyi/TaskManager
Skip to content

一种支持依赖关系、任务兜底策略的任务调度管理工具。API灵活易用,稳定可靠。轻松提交主线程任务、异步任务。支持周期性任务,顺序执行任务,并行任务等。

master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
app
 
 
art
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Task manager is an Android task management tool. It is capable of handling complex task work flow. It's low-coupling, flexible & stable. It supports relation-based tasks. All tasks will be executed in a well-managed order. It can submit tasks with complex relations such as “Or Dependency” or “And Dependency”. Meanwhile, parallel tasks and serial tasks are also supported.

Supported Features

   TM.postAsync(Runnable); // run on background thread
   TM.postAsyncDelay(Runnable);
   TM.postUI(Runnable); // run on UI thread
   TM.postUIDelay(Runnable, int delay);
   TM.postSerial(Runnable  , String groupName);//tasks with same group name , runs in FIFO order.
   TM.cancelTaskByToken(Object);// cancel tasks with same token.

1. Task dispatcher:

  • Dispatch task to UI thread or background thread
  • Dispatch task to run on background thread in FIFO order (behaves like background thread Handler ).
  • Submit a group of tasks, to run in parallell. (ParallellTask)
  • To run a task periodically. (TickTask)
  • Run task while idle. (Task.enableIdleRun)

img

2. Event & Data Dispatcher:

img

3. Advantages:

a) Change serial tasks into parallel tasks by adding task dependencies, so that we can run several tasks in the same time.

img

b) Task execute guarantee: Call “TM.needTaskSync” before your business running. In order to make sure your tasks prerequisites are proper loaded.

img

c) Task recursive dependency testing: In debug mode , task recursive test will be executed in order to avoid some wrong relationship been set to tasks.

Getting Started

add dependencies in your "build.gradle" file

dependencies {
    implementation 'com.iqiyi.taskmanager:taskmanager:1.3.7'
}

Developer Guide

TaskAnalyze

  • TaskAnalyze: Please refer to Task Analyze(任务分析) function in Lens.
  • TaskRecode: See iqiyi/Lens DataDump Function to check TM task status; You can find running tasks ,finished tasks & task bloking time on DataDump panel.
 LensUtil.setDumper(MyDumpFactory.class);
@Override
    public ILogDumper create() {
        return AnnotationLogDumper.create(this)
        // Dump.class:注解类;
        //LensApp.getInstance(): 查询注解的单例对象
        //StaticDump.class:查询带注静态方法的类
                .add(Dump.class, LensApp.getInstance(), StaticDump.class)
        //"TM" : 别名
        //TMDump.class:注解类;
        // TaskManager.getInstance():查询注解的单例对象
                .add("TM",TMDump.class, TaskManager.getInstance(), TaskRecorder.class);
    }

License

TaskManager is Apache v2.0 Licensed.

About

一种支持依赖关系、任务兜底策略的任务调度管理工具。API灵活易用,稳定可靠。轻松提交主线程任务、异步任务。支持周期性任务,顺序执行任务,并行任务等。

Topics

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.