Revize 7cee2250
Přidáno uživatelem horkym před téměř 7 roky(ů)
cron/cron.php | ||
---|---|---|
26 | 26 |
// Kvuli timeoutu. |
27 | 27 |
set_time_limit(0); |
28 | 28 |
|
29 |
// Objekt pro logovani. |
|
30 |
$logs = new Logging(); |
|
31 |
|
|
29 | 32 |
// Vytvoreni objektu pro komunikaci s DB. |
30 |
$dbh = new DB_WEB(); |
|
33 |
$dbh = new DB_WEB($logs);
|
|
31 | 34 |
$DAO = new DAO(); |
32 | 35 |
$DAO->setDB($dbh); |
33 | 36 |
|
34 |
// Objekt pro logovani. |
|
35 |
$logs = new Logging(); |
|
36 |
|
|
37 | 37 |
if ($date != NULL && $DAO->controlTrafficData($date->format("Y-m-d"))) { |
38 | 38 |
$logs->log(Logging::INFO, "Data k vybranemu dni (".$date->format("d.m.Y").") jeste v databazi nejsou."); |
39 | 39 |
$parser = new Parser($logs); |
cron/db/db-exception.php | ||
---|---|---|
1 | 1 |
<?php |
2 | 2 |
|
3 |
require_once "/../logging.php"; |
|
4 |
|
|
3 | 5 |
class DB_Exception extends Exception { |
4 | 6 |
|
5 |
public function __construct($message = false, $code = false) { |
|
7 |
public function __construct($logs = NULL, $message = false, $code = false) {
|
|
6 | 8 |
if (!$message) { |
7 | 9 |
$this->message = mysql_error(); |
8 | 10 |
} |
9 | 11 |
if (!$code) { |
10 | 12 |
$this->code = mysql_errno(); |
11 | 13 |
} |
14 |
if ($logs != NULL) { |
|
15 |
$logs->log(Logging::ERROR, $this->__toString()); |
|
16 |
} |
|
12 | 17 |
} |
13 | 18 |
|
14 | 19 |
} |
cron/db/db-pdo.php | ||
---|---|---|
9 | 9 |
protected $dbhost; |
10 | 10 |
protected $dbname; |
11 | 11 |
protected $dbh; |
12 |
|
|
13 |
protected $logs; |
|
12 | 14 |
|
13 | 15 |
public function __construct($user, $pass, $dbhost, $dbname) { |
14 | 16 |
$this->user = $user; |
... | ... | |
20 | 22 |
protected function connect() { |
21 | 23 |
$this->dbh = new PDO("mysql:host=".$this->dbhost.";dbname=".$this->dbname.";charset=utf8", $this->user, $this->pass); |
22 | 24 |
if (!$this->dbh) { |
23 |
throw new DB_Exception; |
|
25 |
throw new DB_Exception($this->logs);
|
|
24 | 26 |
} |
25 | 27 |
} |
26 | 28 |
|
... | ... | |
30 | 32 |
} |
31 | 33 |
$ret = $this->dbh->query($query); |
32 | 34 |
if (!$ret) { |
33 |
throw new DB_Exception; |
|
35 |
throw new DB_Exception($this->logs);
|
|
34 | 36 |
} else { |
35 |
$stmt = new DB_PDOStatement($this->dbh, $query); |
|
37 |
$stmt = new DB_PDOStatement($this->dbh, $query, $this->logs);
|
|
36 | 38 |
$stmt->result = $ret; |
37 | 39 |
$stmt->number = $ret->rowCount(); |
38 | 40 |
return $stmt; |
... | ... | |
47 | 49 |
public $query; |
48 | 50 |
public $number; |
49 | 51 |
protected $dbh; |
52 |
|
|
53 |
private $logs; |
|
50 | 54 |
|
51 |
public function __construct($dbh, $query) { |
|
55 |
public function __construct($dbh, $query, $logs) {
|
|
52 | 56 |
$this->query = $query; |
53 | 57 |
$this->dbh = $dbh; |
58 |
$this->logs = $logs; |
|
54 | 59 |
if (!$dbh) { |
55 |
throw new DB_Exception("Spojení s databází se nezdařilo!"); |
|
60 |
throw new DB_Exception($this->logs, "Spojení s databází se nezdařilo!");
|
|
56 | 61 |
} |
57 | 62 |
} |
58 | 63 |
|
59 | 64 |
public function fetchAssoc() { |
60 | 65 |
if (!$this->result) { |
61 |
throw new DB_Exception("Dotaz nebyl vykonán!"); |
|
66 |
throw new DB_Exception($this->logs, "Dotaz nebyl vykonán!");
|
|
62 | 67 |
} |
63 | 68 |
return $this->result->fetch(PDO::FETCH_ASSOC); |
64 | 69 |
} |
cron/db/db-web.php | ||
---|---|---|
8 | 8 |
protected $pass = ""; |
9 | 9 |
protected $dbhost = "localhost"; |
10 | 10 |
protected $dbname = "prujezd_vozidel"; |
11 |
|
|
12 |
protected $logs = NULL; |
|
11 | 13 |
|
12 |
public function __construct() { |
|
14 |
public function __construct($logs) { |
|
15 |
$this->logs = $logs; |
|
13 | 16 |
} |
14 | 17 |
|
15 | 18 |
} |
cron/log/cron.txt | ||
---|---|---|
1 |
21.05.2018 21:08:55.799
|
|
1 |
22.05.2018 23:30:19.506
|
|
2 | 2 |
--- INFO --- |
3 |
Data k vybranemu dni jeste v databazi nejsou. |
|
3 |
Data k vybranemu dni (21.05.2018) jeste v databazi nejsou.
|
|
4 | 4 |
|
5 |
21.05.2018 21:08:55.811
|
|
5 |
22.05.2018 23:30:19.518
|
|
6 | 6 |
--- INFO --- |
7 |
ZACATEK PROCEDURY pro den 20.05.2018.
|
|
7 |
ZACATEK PROCEDURY pro den 21.05.2018.
|
|
8 | 8 |
|
9 |
21.05.2018 21:09:01.904
|
|
9 |
22.05.2018 23:30:25.832
|
|
10 | 10 |
--- INFO --- |
11 | 11 |
Stazeni archivu probehlo v poradku. |
12 | 12 |
|
13 |
21.05.2018 21:09:02.588
|
|
13 |
22.05.2018 23:30:26.887
|
|
14 | 14 |
--- INFO --- |
15 | 15 |
Extrahovani archivu v poradku dokonceno. |
16 | 16 |
|
17 |
21.05.2018 21:09:02.598
|
|
17 |
22.05.2018 23:30:26.897
|
|
18 | 18 |
--- INFO --- |
19 | 19 |
Zpracovavani zaznamu o doprave. |
20 | 20 |
|
21 |
21.05.2018 21:11:08.933
|
|
21 |
22.05.2018 23:33:56.540
|
|
22 | 22 |
--- INFO --- |
23 | 23 |
Zpracovavani zaznamu o lokacich. |
24 | 24 |
|
25 |
21.05.2018 21:11:08.945
|
|
25 |
22.05.2018 23:33:56.552
|
|
26 | 26 |
--- INFO --- |
27 | 27 |
Odstranovani slozky s extrahovanymi daty. |
28 | 28 |
|
29 |
21.05.2018 21:11:08.969
|
|
29 |
22.05.2018 23:33:56.584
|
|
30 | 30 |
--- INFO --- |
31 | 31 |
KONEC PROCEDURY. |
32 | 32 |
|
33 |
21.05.2018 21:22:56.954
|
|
33 |
22.05.2018 23:51:45.080
|
|
34 | 34 |
--- WARNING --- |
35 |
Pro vybrany den (20.05.2018) jiz data v databazi jsou. |
|
35 |
Pro vybrany den (21.05.2018) jiz data v databazi jsou. |
|
36 |
|
|
37 |
23.05.2018 00:02:20.633 |
|
38 |
--- INFO --- |
|
39 |
Data k vybranemu dni (22.05.2018) jeste v databazi nejsou. |
|
40 |
|
|
41 |
23.05.2018 00:02:20.644 |
|
42 |
--- INFO --- |
|
43 |
ZACATEK PROCEDURY pro den 22.05.2018. |
|
44 |
|
|
45 |
23.05.2018 00:02:21.236 |
|
46 |
--- WARNING --- |
|
47 |
Pro dany datum neexistuji data. |
|
48 |
|
|
49 |
23.05.2018 00:02:21.248 |
|
50 |
--- INFO --- |
|
51 |
KONEC PROCEDURY. |
|
52 |
|
|
53 |
23.05.2018 00:10:05.350 |
|
54 |
--- ERROR --- |
|
55 |
exception 'DB_Exception' in C:\Program Files (x86)\EasyPHP-12.1\www\cron\db\db-pdo.php:35 |
|
56 |
Stack trace: |
|
57 |
#0 C:\Program Files (x86)\EasyPHP-12.1\www\cron\dao\dao.php(40): DB_PDO->executeQuery('SELECT COUNT(*)...') |
|
58 |
#1 C:\Program Files (x86)\EasyPHP-12.1\www\cron\cron.php(37): DAO->controlTrafficData('2018-05-21') |
|
59 |
#2 C:\Program Files (x86)\EasyPHP-12.1\www\cron\cron.php(21): cron_procedure(Object(DateTime)) |
|
60 |
#3 C:\Program Files (x86)\EasyPHP-12.1\www\cron\index.php(9): cron() |
|
61 |
#4 {main} |
|
36 | 62 |
|
Také k dispozici: Unified diff
refs #6919: Logy
Oprava logovani v cronu. Do logu odchytavany i vyvolavane vyjimky. Pridan ukazkovy soubor (nejdrive beh OK, pote beh, kdy data uz byla v DB, pak beh, kdy data jeste nebyla ke stazeni, a na zaver beh, kdy byla spatna struktura DB).