1
|
<?php
|
2
|
|
3
|
require_once "dao/dao.php";
|
4
|
require_once "db/db-web.php";
|
5
|
require_once "parser.php";
|
6
|
require_once "process_traffic_matrix.php";
|
7
|
|
8
|
function year_cron() {
|
9
|
// Stazeni dat za posledni rok.
|
10
|
for ($i = 365; $i > 0; $i--) {
|
11
|
$date = new DateTime();
|
12
|
$date->modify("-$i day");
|
13
|
cron_procedure($date);
|
14
|
}
|
15
|
}
|
16
|
|
17
|
function cron() {
|
18
|
// Stazeni dat z minuleho dne.
|
19
|
$date = new DateTime();
|
20
|
$date->modify("-1 day");
|
21
|
cron_procedure($date);
|
22
|
}
|
23
|
|
24
|
// Funkce, ktera je volana bud cron() nebo year_cron() a ktera stahne data pro dany den.
|
25
|
function cron_procedure($date) {
|
26
|
// Kvuli timeoutu.
|
27
|
set_time_limit(0);
|
28
|
|
29
|
// Vytvoreni objektu pro komunikaci s DB.
|
30
|
$dbh = new DB_WEB();
|
31
|
$DAO = new DAO();
|
32
|
$DAO->setDB($dbh);
|
33
|
|
34
|
// Objekt pro logovani.
|
35
|
$logs = new Logging();
|
36
|
|
37
|
if ($date != NULL && $DAO->controlTrafficData($date->format("Y-m-d"))) {
|
38
|
$logs->log(Logging::INFO, "Data k vybranemu dni (".$date->format("d.m.Y").") jeste v databazi nejsou.");
|
39
|
$parser = new Parser($logs);
|
40
|
$parser->doWork($date->format("Ymd"));
|
41
|
|
42
|
$traffic = $parser->getTraffic();
|
43
|
$trafficOneDay = $parser->getTrafficOneDay();
|
44
|
$locations = $parser->getLocations();
|
45
|
|
46
|
$DAO->insertVehicles(); // Pokud nejsou typy vozidel v tabulce - pridat.
|
47
|
|
48
|
// Pridat udaje o novych zarizenich.
|
49
|
foreach ($locations as $l) {
|
50
|
$DAO->insertLocationData($l);
|
51
|
}
|
52
|
|
53
|
// Pridat zaznamy z vybraneho dne.
|
54
|
$insertDate = array();
|
55
|
$insertRTT = array();
|
56
|
$insertRT = array();
|
57
|
$insertOneDay = array();
|
58
|
process_traffic_matrix($parser, $traffic, $trafficOneDay, $DAO->findFirstId("datum"), $DAO->findFirstId("zaznam_cas"), $DAO->findFirstId("zaznam"), $DAO->findFirstId("zaznam_prum_den"), $insertDate, $insertRTT, $insertRT, $insertOneDay, $date->format("Y-m-d"));
|
59
|
$DAO->insertTrafficData($insertDate, $insertRTT, $insertRT, $insertOneDay);
|
60
|
} else if ($date != NULL) {
|
61
|
// Data pro vybrany den uz v databazi jsou.
|
62
|
$logs->log(Logging::WARNING, "Pro vybrany den (".$date->format("d.m.Y").") jiz data v databazi jsou.");
|
63
|
}
|
64
|
}
|
65
|
|
66
|
?>
|