Projekt

Obecné

Profil

Stáhnout (2.17 KB) Statistiky
| Větev: | Revize:
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
?>
(2-2/7)