• Stars
    star
    467
  • Rank 91,293 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

More Repositories

1

xHook

🔥 A PLT hook library for Android native ELF.
C
3,973
star
2

xCrash

🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.
C
3,624
star
3

dpvs

DPVS is a high performance Layer-4 load balancer based on DPDK.
C
2,904
star
4

Andromeda

Andromeda simplifies local/remote communication for Android modularization
Java
2,274
star
5

Qigsaw

🔥🔥Qigsaw ['tʃɪɡsɔ] is a dynamic modularization library which is based on Android App Bundles(Do not need Google Play Service). It supports dynamic delivery for split APKs without reinstalling the base one.
Java
1,650
star
6

FASPell

2019-SOTA简繁中文拼写检查工具:FASPell Chinese Spell Checker (Chinese Spell Check / 中文拼写检错 / 中文拼写纠错 / 中文拼写检查)
Python
1,179
star
7

Neptune

A flexible, powerful and lightweight plugin framework for Android
Java
763
star
8

libfiber

The high performance c/c++ coroutine/fiber library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iouring/iocp/windows GUI
C
721
star
9

LiteApp

LiteApp is a high performance mobile cross-platform implementation, The realization of cross-platform functionality is base on webview and provides different ideas and solutions for improve webview performance.
JavaScript
673
star
10

qnsm

QNSM is network security monitoring framework based on DPDK.
C
513
star
11

Lens

功能简介:一种开发帮助产品研发的效率工具。主要提供了:页面分析、任务分析、网络分析、DataDump、自定义hook 、Data Explorer 等功能。以帮助开发、测试、UI 等同学更便捷的排查和定位问题,提升开发效率。
Java
405
star
12

dexSplitter

Analyze contribution rate of each module to the apk size
Java
198
star
13

xgboost-serving

A flexible, high-performance serving system for machine learning models
C++
137
star
14

auklet

Auklet is a high performance storage engine based on Openstack Swift
Go
93
star
15

lua-resty-couchbase

Lua couchbase client driver for the ngx_lua based on the cosocket API / 使用cosocket纯lua实现的couchbase的client,已经在爱奇艺重要的服务播放服务稳定运行5年多
Lua
79
star
16

lotus

lotus is a framework for intereact between views in Android
Java
73
star
17

HMGNN

Python
61
star
18

Navi

Java
18
star