1 |
bad470c9
|
horkym
|
<?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 cron() {
|
9 |
|
|
// Nacteni dat z testovacich souboru.
|
10 |
|
|
cron_procedure(new DateTime("20180605"));
|
11 |
|
|
}
|
12 |
|
|
|
13 |
|
|
// Funkce, ktera je volana bud cron() nebo year_cron() a ktera stahne data pro dany den.
|
14 |
|
|
function cron_procedure($date) {
|
15 |
|
|
// Kvuli timeoutu.
|
16 |
|
|
set_time_limit(0);
|
17 |
|
|
|
18 |
|
|
// Objekt pro logovani.
|
19 |
|
|
$logs = new Logging();
|
20 |
|
|
|
21 |
|
|
// Vytvoreni objektu pro komunikaci s DB.
|
22 |
|
|
$dbh = new DB_WEB($logs);
|
23 |
|
|
$DAO = new DAO();
|
24 |
|
|
$DAO->setDB($dbh);
|
25 |
|
|
|
26 |
|
|
if ($date != NULL && $DAO->controlTrafficData($date->format("Y-m-d"))) {
|
27 |
|
|
$logs->log(Logging::INFO, "Data k vybranemu dni (".$date->format("d.m.Y").") jeste v databazi nejsou.");
|
28 |
|
|
$parser = new Parser($logs);
|
29 |
|
|
$parser->doWork($date->format("Ymd"));
|
30 |
|
|
|
31 |
|
|
$traffic = $parser->getTraffic();
|
32 |
|
|
$trafficOneDay = $parser->getTrafficOneDay();
|
33 |
|
|
$locations = $parser->getLocations();
|
34 |
|
|
|
35 |
|
|
$DAO->insertVehicles(); // Pokud nejsou typy vozidel v tabulce - pridat.
|
36 |
|
|
|
37 |
|
|
// Pridat udaje o novych zarizenich.
|
38 |
|
|
foreach ($locations as $l) {
|
39 |
|
|
$DAO->insertLocationData($l);
|
40 |
|
|
}
|
41 |
|
|
|
42 |
|
|
// Pridat zaznamy z vybraneho dne.
|
43 |
|
|
$insertDate = array();
|
44 |
|
|
$insertRTT = array();
|
45 |
|
|
$insertRT = array();
|
46 |
|
|
$insertOneDay = array();
|
47 |
|
|
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"));
|
48 |
|
|
$DAO->insertTrafficData($insertDate, $insertRTT, $insertRT, $insertOneDay);
|
49 |
|
|
} else if ($date != NULL) {
|
50 |
|
|
// Data pro vybrany den uz v databazi jsou.
|
51 |
|
|
$logs->log(Logging::WARNING, "Pro vybrany den (".$date->format("d.m.Y").") jiz data v databazi jsou.");
|
52 |
|
|
}
|
53 |
|
|
}
|
54 |
|
|
|
55 |
|
|
?>
|