Skip to content

Getting Started with Init

markzhai edited this page Oct 5, 2015 · 13 revisions

Init

// The library needs application context to get process information.
Init.init(this);

Or init with project's custom log.

// Enables custom log component, logProxy should implement cn.zhaiyifan.init.ILog
Init.init(this, logProxy);

Create task

// Create task named “task1”, blocked, and no delay
Task task1 = new Task("task1") {
    // put your real operations here
    @Override
    protected void start() {
        doSomething();
    }

    // override to run only on process "cn.zhaiyifan.init"
    @Override
    public boolean runOnProcess(String processName) {
        return processName.equals("cn.zhaiyifan.init");
    }
};

// create a task named "task2", non-blocked, with 5ms delay
Task task2 = new Task("task2", false, 5) {
    @Override
    protected void start() {
        doSomething();
    }
};

// create a task named "task3", blocked, no delay
Task task3 = new Task("task3", true) {
    @Override
    protected void start() {
        doSomething();
    }
};

// create a task named "task4", non-blocked, no delay
Task task4 = new Task("task4", false) {
    @Override
    protected void start() {
        doSomething();
    }
};

// create a task named "task5", non-blocked, no delay
Task task5 = new Task("task5", false) {
    @Override
    protected void start() {
        doSomething();
    }
};
// task5 can start only if task4 finished
task5.setParentTask(task4);

Create Flow

// Create flow named "flow"
Flow flow = new Flow("flow");

Add task to flow

// add task to flow with corresponding wave flow.addTask(1, task1) .addTask(1, task2) .addTask(2, task3) .addTask(2, task4) .addTask(3, task5);

Start flow

Can add flow directly

// can also directly call flow.start()
Init.start(flow);

or add it to Init and start it somewhere else with flow name.

Init.add(flow);
Init.start("flow");

Get runtime status

int status = Init.getFlow("flow").getTaskStatus("task1");

Cancel flow

use Flow object

flow.cancel()

or from Init

Init.cancel("flow");

Clone this wiki locally