@@ -8,12 +8,12 @@ lightweight and powerful task load balancing for php
8
8
- Support multiple drives for every task.
9
9
- Automatically choose a driver to execute task by drivers` weight value.
10
10
- Support multiple backup drivers.
11
- - task cycle life hooks.
11
+ - task lifecycle and hooks.
12
12
13
13
# Install
14
14
15
15
``` php
16
- composer require 'toplan/task-balancer:~0.1.0 '
16
+ composer require 'toplan/task-balancer:~0.1.2 '
17
17
```
18
18
19
19
# Usage
@@ -58,28 +58,32 @@ $result = Balancer::run('task1');
58
58
59
59
## Create & Run
60
60
61
- ###1 . Balancer::task($name [ , $data] , $work);
61
+ ### Balancer::task($name [ , $data] , $work);
62
62
63
63
create a task instance, return task instance.
64
64
65
65
``` php
66
66
Balancer::task('taskName', $data, function($task){
67
- //task init work
67
+ //task`s ready work, like create drivers
68
68
});
69
69
```
70
70
71
- ** note: ** ` $data ` will store in task instance.
71
+ > ` $data ` will store in task instance.
72
72
73
- ###2 . Balancer::run($taskName [ , $data] )
73
+ ### Balancer::run($taskName [ , $data] )
74
74
75
75
run the task, and return a results array.
76
- ** note: ** ` $data ` will override data which in task instance.
76
+ > ` $data ` will override data which in task instance.
77
77
78
- ###3 . $task->driver($optionString, [ $weight, 'backup', ] $work);
78
+ ### $task->data($data)
79
+
80
+ set the data value of task instance, will override origin data.
81
+
82
+ ### $task->driver($optionString [ , $weight] [ , 'backup'] , $work);
79
83
80
84
create a driver instance for ` $task ` , return driver instance.
81
85
82
- ** note: ** ` $weight ` must be a integer, default value is '1'
86
+ > ` $weight ` must be a integer, default value is '1'
83
87
84
88
``` php
85
89
$task->driver('driverName 80 backup', function($driver, $data){
@@ -88,85 +92,88 @@ $task->driver('driverName 80 backup', function($driver, $data){
88
92
});
89
93
```
90
94
91
- ###4 . $driver->weight($weight)
95
+ ### $driver->weight($weight)
92
96
93
97
set driver`s weight, return current driver,
94
98
supported chain operation.
95
99
96
- ** note: ** ` $weight ` must be a integer
100
+ > ` $weight ` must be a integer
97
101
98
- ###5 . $driver->backup($is)
102
+ ### $driver->backup($is)
99
103
100
104
set driver is backup, return current driver,
101
105
supported chain operation.
102
106
103
- ** note: ** ` $is ` must be true of false
107
+ > ` $is ` must be true of false
104
108
105
- ###6 . $driver->data($data);
109
+ ### $driver->data($data);
106
110
107
- set data for driver`s work use ,
111
+ set the data value of driver instance ,
108
112
support chain operation.
109
113
110
- ** note: ** ` $data ` will store in driver instance.
114
+ > ` $data ` will store in driver instance.
111
115
112
- ###7 . $driver->work(function($driver, $data){});
116
+ ### $driver->work(function($driver, $data){});
113
117
114
118
set driver work, give two arguments: ` $driver ` and ` $data ` ,
115
119
support chain operation.
116
120
117
- ** note: ** ` $data ` is try to get from driver instance,
121
+ > ` $data ` is a value try to get from driver instance,
118
122
if null will continue try to get from task instance.
123
+ >
124
+ > ` $data ` equals to ` $driver->getData() `
119
125
120
- ###8 . $driver->failed()
126
+ ### $driver->failed()
121
127
122
128
set current driver run failed,
123
129
support chain operation.
124
130
125
- ###9 . $driver->success()
131
+ ### $driver->success()
126
132
127
133
set current driver run successful.
128
134
support chain operation.
129
135
130
- ###10 . $driver->getDriverData()
136
+ ### $driver->getDriverData()
137
+
138
+ get data value of driver instance.
131
139
132
- get data from driver instance.
140
+ ### $ driver->getTaskData()
133
141
134
- ## # 11 . $driver->getTaskData()
142
+ get data value of task instance.
135
143
136
- get data from task instance.
137
144
138
- ## Task Cycle Life
145
+ ## Task Lifecycle
139
146
140
147
| Hook name | handler arguments | handler return value |
141
148
| --------- | :----------------: | :-----: |
142
- | beforeCreateDriver | $task | on effect |
143
- | afterCreateDriver | $task | on effect |
149
+ | beforeCreateDriver | $task | no effect |
150
+ | afterCreateDriver | $task | no effect |
144
151
| beforeRun | $task | if ` false ` will stop run task and return ` false ` |
145
152
| beforeDriverRun | $task | no effect |
146
153
| afterDriverRun | $task | no effect |
147
154
| afterRun | $task, $results | override run task`s results data |
148
155
149
- ###1 . $task->hook($hookName, $handler);
156
+ ### $task->hook($hookName, $handler);
150
157
151
- ###2 . $task->beforeCreateDriver($handler);
158
+ ### $task->beforeCreateDriver($handler);
152
159
153
- ###3 . $task->afterCreateDriver($handler);
160
+ ### $task->afterCreateDriver($handler);
154
161
155
- ###4 . $task->beforeRun($handler);
162
+ ### $task->beforeRun($handler);
156
163
157
- ###5 $task->beforeDriverRun($handler)
164
+ ### $task->beforeDriverRun($handler)
158
165
159
- ###6 $task->afterDriverRun($handler)
166
+ ### $task->afterDriverRun($handler)
160
167
161
- ###7 . $task->afterRun($handler);
168
+ ### $task->afterRun($handler);
162
169
163
170
164
171
# Todo
165
172
166
- - [x] remember every tasks` start time and end time.
167
- - [x] remember every drivers` start time and end time.
168
- - [x] smart parse driver`s create arguments in task class
169
- - [x] define task`s lifecycle and hook
173
+ - [x] remember every task`s start time and end time.
174
+ - [x] remember every driver`s start time and end time.
175
+ - [x] smart parse arguments of method ` driver() ` .
176
+ - [x] task lifecycle and hooks
170
177
- [ ] pause/resume task
171
178
172
179
# Dependents
0 commit comments