-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathstartDaemon.php
More file actions
87 lines (67 loc) · 3.08 KB
/
Copy pathstartDaemon.php
File metadata and controls
87 lines (67 loc) · 3.08 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
$baseDir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
define('DB_CONN_STR', 'host=localhost dbname=parser user=parser password=1111');
$dbconn = pg_connect(DB_CONN_STR)
or die('Не могу подключиться к БД: ' . pg_last_error());
//Получаем состояние парсера и кол-во потоков
$query = 'SELECT status,thr_cnt,last_time FROM params LIMIT 1 OFFSET 0';
$result = pg_query($query) or die('Ошибка запроса: ' . pg_last_error());
$row = pg_fetch_object($result);
/*if($row->last_time && time()-$row->last_time<125){
pg_free_result($result);
pg_close($dbconn);
echo('NotTime');
exit();
}*/
require $baseDir . "classes/jobDaemon.php";
require $baseDir . "classes/csvParserWorker.php";
//declare(ticks = 1);
$job = new JobDaemon($baseDir);
while ($row->status == 't') {
$dbconn = pg_connect(DB_CONN_STR)
or die('Не могу подключиться к БД: ' . pg_last_error());
$query = 'UPDATE params SET last_time=' . time();
pg_query($query) or die('Ошибка запроса: ' . pg_last_error());
pg_close($dbconn);
//Сбрасываем "зависшие" состояния
all_reset($baseDir);
//Установить максимальное количество процессов и запустить их
$job->maxProcesses = $row->thr_cnt;
$job->run();
//Проверяем состояние парсера и количество потоков
$dbconn = pg_connect(DB_CONN_STR)
or die('Не могу подключиться к БД: ' . pg_last_error());
$query = 'SELECT status,thr_cnt FROM params LIMIT 1 OFFSET 0';
$result = pg_query($query) or die('Ошибка запроса: ' . pg_last_error());
$row = pg_fetch_object($result);
pg_free_result($result);
pg_close($dbconn);
}
function all_reset($baseDir)
{
//Очищаем временную папку temp
if (file_exists($baseDir . 'tempFiles'))
foreach (glob($baseDir . 'tempFiles/*') as $file)
unlink($file);
//Очищаем временную папку для граббера
if (file_exists($baseDir . 'tempGrab'))
foreach (glob($baseDir . 'tempGrab/*') as $file)
unlink($file);
//Очищаем временную папку для куков
if (file_exists($baseDir . 'cookies'))
foreach (glob($baseDir . 'cookies/*') as $file)
unlink($file);
//Приводим все ключи "в обработке" к состоянию "в ожидании"
$dbconn = pg_connect(DB_CONN_STR)
or die('Не могу подключиться к БД: ' . pg_last_error());
//Сбросить "занятые" аккаунты
$query = 'UPDATE accounts SET busy=0 ' .
"WHERE busy=1";
pg_query($query) or die('Ошибка запроса: ' . pg_last_error());
//Сбросить "занятые" прокси
$query = 'UPDATE proxys SET busy=0 ' .
"WHERE busy=1";
pg_query($query) or die('Ошибка запроса: ' . pg_last_error());
pg_close($dbconn);
}
?>