-
Notifications
You must be signed in to change notification settings - Fork 42
Getting Started with Init
markzhai edited this page Oct 5, 2015
·
13 revisions
// 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 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 named "flow"
Flow flow = new Flow("flow");// add task to flow with corresponding wave flow.addTask(1, task1) .addTask(1, task2) .addTask(2, task3) .addTask(2, task4) .addTask(3, task5);
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");int status = Init.getFlow("flow").getTaskStatus("task1");use Flow object
flow.cancel()or from Init
Init.cancel("flow");