forked from devlab-oy/pupesoft
-
Notifications
You must be signed in to change notification settings - Fork 0
/
data_import_ajo.php
88 lines (64 loc) · 2.69 KB
/
data_import_ajo.php
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
88
<?php
// Kutsutaanko CLI:stä
$php_cli = FALSE;
if (php_sapi_name() == 'cli') {
$php_cli = TRUE;
}
date_default_timezone_set('Europe/Helsinki');
/* DATA IMPORT CRON LOOP */
/* Ajetaan cronista ja tämä sisäänlukee luedata-tiedostot datain hakemistosta */
// Kutsutaanko CLI:stä
if (!$php_cli) {
die ("Tätä scriptiä voi ajaa vain komentoriviltä!");
}
// Laitetaan unlimited max time
ini_set("max_execution_time", 0);
$pupe_root_polku = dirname(__FILE__);
require "{$pupe_root_polku}/inc/connect.inc";
require "{$pupe_root_polku}/inc/functions.inc";
// Logitetaan ajo
cron_log();
$lock_params = array(
"locktime" => 900,
);
// Sallitaan vain yksi instanssi tästä skriptistä kerrallaan
pupesoft_flock($lock_params);
function data_import() {
global $pupe_root_polku;
$faileja_kasitelty = FALSE;
// Loopataan DATAIN -hakemisto läpi
if ($files = scandir($pupe_root_polku."/datain")) {
foreach ($files as $file) {
// Etsitään "lue-data#" -alkuisia filejä, jotka loppuu ".DATAIMPORT"
if (substr($file, 0, 9) == "lue-data#" and substr($file, -11) == ".DATAIMPORT") {
// Filename on muotoa: lue-data#username#yhtio#taulu#randombit#jarjestys.DATAIMPORT
// Filename on muotoa: lue-data#username#yhtio#taulu#randombit#alkuperainen_filename#jarjestys.DATAIMPORT
$filen_tiedot = explode("#", $file);
// Ei käsitellä jos filename ei ole oikeaa muotoa
if (count($filen_tiedot) == 7) {
$kuka = $filen_tiedot[1];
$yhtio = $filen_tiedot[2];
$taulu = $filen_tiedot[3];
$random = $filen_tiedot[4];
$orig_file = $filen_tiedot[5];
$jarjestys = $filen_tiedot[6];
// Logfile on muotoa: lue-data#username#yhtio#taulu#randombit#jarjestys.LOG
$logfile = "lue-data#{$kuka}#{$yhtio}#{$taulu}#{$random}#{$orig_file}#{$jarjestys}.LOG";
// Errorfile on muotoa: lue-data#username#yhtio#taulu#randombit#jarjestys.ERR
$errfile = "lue-data#{$kuka}#{$yhtio}#{$taulu}#{$random}#{$orig_file}#{$jarjestys}.ERR";
// Ajetaan lue_data tälle tiedostolle
passthru("/usr/bin/php $pupe_root_polku/lue_data.php ".escapeshellarg($yhtio)." ".escapeshellarg($taulu)." ".escapeshellarg($pupe_root_polku."/datain/".$file)." ".escapeshellarg($pupe_root_polku."/datain/".$logfile)." ".escapeshellarg($pupe_root_polku."/datain/".$errfile));
// Siirretään file käsitellyksi
rename($pupe_root_polku."/datain/".$file, $pupe_root_polku."/datain/".$file.".DONE");
$faileja_kasitelty = TRUE;
}
}
}
}
// Katsotaan oisko tullut lisää käsiteltäviä
if ($faileja_kasitelty) {
data_import();
}
}
// Aloitetaan sisäänluku
data_import();