All Projects → iqiyi → Taskmanager

iqiyi / Taskmanager

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

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Taskmanager

menu button
Flutter plugin to display a popup menu button widget with handsome design and easy to use.
Stars: ✭ 64 (-82.84%)
Mutual labels:  dependency
Multiplatform-Bus
Kotlin event-bus compatible with Android & native iOS
Stars: ✭ 43 (-88.47%)
Mutual labels:  event
Ics Py
Pythonic and easy iCalendar library (rfc5545)
Stars: ✭ 322 (-13.67%)
Mutual labels:  event
updatebot
a simple bot for updating dependencies in source code
Stars: ✭ 30 (-91.96%)
Mutual labels:  dependency
hardhat-dependency-compiler
📦 Compile Solidity sources directly from NPM dependencies
Stars: ✭ 19 (-94.91%)
Mutual labels:  dependency
dom-event-simulate
simulate user interaction with DOM events.
Stars: ✭ 23 (-93.83%)
Mutual labels:  event
growth.dev
[EVENT] API & IPA
Stars: ✭ 46 (-87.67%)
Mutual labels:  event
Laravel Event Sourcing
The easiest way to get started with event sourcing in Laravel
Stars: ✭ 353 (-5.36%)
Mutual labels:  event
EventHandlerInSingleApplication
A sample project about how to create event subscribe/publish feature in single application in asp.net core
Stars: ✭ 16 (-95.71%)
Mutual labels:  event
Event
The Hoa\Event library
Stars: ✭ 319 (-14.48%)
Mutual labels:  event
summit-app-ios
The official app for the OpenStack Summit
Stars: ✭ 35 (-90.62%)
Mutual labels:  event
jsheroes.io
The official JSHeroes website
Stars: ✭ 35 (-90.62%)
Mutual labels:  event
gradle-upgrade-interactive
CLI to interactively upgrade gradle dependencies, inspired by yarn.
Stars: ✭ 44 (-88.2%)
Mutual labels:  dependency
async-script-loader
Asynchronous script loading for SPAs
Stars: ✭ 15 (-95.98%)
Mutual labels:  event
Swoole Src
🚀 Coroutine-based concurrency library for PHP
Stars: ✭ 17,175 (+4504.56%)
Mutual labels:  event
siringa
Minimalist dependency injection library for Python that embraces type annotations syntax
Stars: ✭ 51 (-86.33%)
Mutual labels:  dependency
spa-bus
🔥Tools for multilevel components to pass values in any SPA
Stars: ✭ 15 (-95.98%)
Mutual labels:  event
React Event Listener
A React component for binding events on the global scope. 💫
Stars: ✭ 359 (-3.75%)
Mutual labels:  event
On Finished
Execute a callback when a request closes, finishes, or errors
Stars: ✭ 335 (-10.19%)
Mutual labels:  event
Composer Bin Plugin
No conflicts for your bin dependencies
Stars: ✭ 287 (-23.06%)
Mutual labels:  dependency
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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].