-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.php
56 lines (52 loc) · 1.34 KB
/
main.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
require 'ProcessHelp.php';
require 'MsgQueue.php';
require 'Daemon.php';
require 'Task.php';
require 'Curl.php';
require 'Register.php';
//监听信号
Daemon::listenSign();
//进程守护
Daemon::run();
//设置接到重启信号执行内容
Daemon::setSigUser1Callback(function (){
Task::getProcess()->killAll();
Task::getProcess()->setMq(Task::getMsgQueue());
//$number 重新开启几个进程
$number = 1;
//你的业务逻辑
$callback = function($msg,$queue){};
Task::getProcess()->setNumber($number);
Task::getProcess()->process(
function (ProcessHelp $_this) use ($callback) {
while (true) {
$msg = $_this->getMq()->pop(1);
if (is_callable($callback)) {
$callback($msg,$_this->getMq());
}
}
}
);
});
//制造测试队列
$list = [];
for($i=0;$i<200;$i++){
$list[] = 'http://www.php20.cn/article/'.$i;
}
//进程数量
$number = 1;
//任务主体
$callback = function ($one,MsgQueue $MsgQueue){
sleep(1);
$fileName = explode('/',$one);
if($rs = Curl::run($one)){
file_put_contents(__DIR__.'/A/'.$fileName[count($fileName)-1].'.html',$rs);
}
};
//任务完成回调
$success = function (){
echo 'task is success';
};
//执行任务
Task::run($list,$number,$callback,$success);