|
@@ -127,15 +127,16 @@ class Route_UrlAction_BiAuditGenerate extends RouteBase {
|
|
|
<div class="col-sm-2">
|
|
<div class="col-sm-2">
|
|
|
<select name="reloadCache" class="form-control">
|
|
<select name="reloadCache" class="form-control">
|
|
|
<option value="No" selected>Nie</option>
|
|
<option value="No" selected>Nie</option>
|
|
|
- <option value="Part">Częściowe</option>
|
|
|
|
|
|
|
+<!-- <option value="Part">Częściowe</option>-->
|
|
|
<option value="Full">Pełne</option>
|
|
<option value="Full">Pełne</option>
|
|
|
</select>
|
|
</select>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<div class="col-sm-offset-2 col-sm-10">
|
|
<div class="col-sm-offset-2 col-sm-10">
|
|
|
- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>
|
|
|
|
|
- Pełne odświeżenie wymagane w przypadku edycji/usunięcia istniejących rekordów w tabelach pracowników/kontrahentów (w zależności od ilości rekordów może trwać znacznie dłużej)
|
|
|
|
|
|
|
+<!-- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>-->
|
|
|
|
|
+ Pełne odświeżenie wymagane w przypadku edycji/usunięcia istniejących rekordów w tabelach pracowników/kontrahentów.<br/>
|
|
|
|
|
+ Uwaga! Jeżeli aktywne są inne zadania, te zadanie zostanie wstrzymane do momentu ich ukończenia.
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
@@ -419,15 +420,16 @@ where `REMOTE_PRIMARY_KEY` = '{$this->SOURCE['ID']}'";
|
|
|
<div class="col-sm-2">
|
|
<div class="col-sm-2">
|
|
|
<select name="reloadCache" class="form-control">
|
|
<select name="reloadCache" class="form-control">
|
|
|
<option value="No" selected>Nie</option>
|
|
<option value="No" selected>Nie</option>
|
|
|
- <option value="Part">Częściowe</option>
|
|
|
|
|
|
|
+<!-- <option value="Part">Częściowe</option>-->
|
|
|
<option value="Full">Pełne</option>
|
|
<option value="Full">Pełne</option>
|
|
|
</select>
|
|
</select>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<div class="col-sm-offset-4 col-sm-8">
|
|
<div class="col-sm-offset-4 col-sm-8">
|
|
|
- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>
|
|
|
|
|
- Pełne odświeżenie wymagane w przypadku edycji/usunięcia istniejących rekordów w tabelach pracowników/kontrahentów (w zależności od ilości rekordów może trwać znacznie dłużej)
|
|
|
|
|
|
|
+<!-- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>-->
|
|
|
|
|
+ Pełne odświeżenie wymagane w przypadku edycji/usunięcia istniejących rekordów w tabelach pracowników/kontrahentów.<br/>
|
|
|
|
|
+ Uwaga! Jeżeli aktywne są inne zadania, te zadanie zostanie wstrzymane do momentu ich ukończenia.
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
@@ -1031,18 +1033,17 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
|
|
|
if (!file_exists($tasksDirLocation)) mkdir($tasksDirLocation, 0755, true);
|
|
if (!file_exists($tasksDirLocation)) mkdir($tasksDirLocation, 0755, true);
|
|
|
if (!file_exists($tasksDirLocation)) throw new Exception('Error during creating temporary directory.');
|
|
if (!file_exists($tasksDirLocation)) throw new Exception('Error during creating temporary directory.');
|
|
|
|
|
|
|
|
-/*
|
|
|
|
|
- ### Wymuszenie częsciowego odświezenia cache
|
|
|
|
|
|
|
+
|
|
|
|
|
+ ### Wyłączenie wcześniej używanego mechanizmu wymuszania częściowego odświeżania cache - teraz działa to z automatu
|
|
|
$sqlArr = [
|
|
$sqlArr = [
|
|
|
- 'BI_analiza_reloadCache' => 'Part',
|
|
|
|
|
- 'FILE_STATUS_info' => 'Automatycznie wymuszono częściowe odświeżenie cache',
|
|
|
|
|
|
|
+ 'BI_analiza_reloadCache' => 'No',
|
|
|
];
|
|
];
|
|
|
- $query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache not in ('Full', 'Part') and FILE_STATUS = 'TO_GENERATE'";
|
|
|
|
|
|
|
+ $query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache not in ('Part') and FILE_STATUS = 'TO_GENERATE'";
|
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
|
foreach ($result as $row) {
|
|
foreach ($result as $row) {
|
|
|
DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', array_merge(['ID' => $row['ID']], $sqlArr));
|
|
DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', array_merge(['ID' => $row['ID']], $sqlArr));
|
|
|
}
|
|
}
|
|
|
-*/
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
### Sprawdzenie czy któryś rekord wymaga odświeżenia cache
|
|
### Sprawdzenie czy któryś rekord wymaga odświeżenia cache
|
|
|
$doGenerate = true;
|
|
$doGenerate = true;
|
|
@@ -1057,14 +1058,14 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
|
|
|
$reloadCacheResult = file_get_contents($reloadCacheResultFile);
|
|
$reloadCacheResult = file_get_contents($reloadCacheResultFile);
|
|
|
if ($reloadCacheResult == "ok") {
|
|
if ($reloadCacheResult == "ok") {
|
|
|
$sqlArr = [
|
|
$sqlArr = [
|
|
|
- 'FILE_STATUS_info' => 'Odświeżono cache, oczekiwanie na wygenerowanie powiązań',
|
|
|
|
|
|
|
+ 'FILE_STATUS_info' => 'Ukończono pełne Odświeżenie cache, oczekiwanie na wygenerowanie powiązań',
|
|
|
'BI_analiza_reloadCache' => 'No',
|
|
'BI_analiza_reloadCache' => 'No',
|
|
|
];
|
|
];
|
|
|
$doGenerate = true;
|
|
$doGenerate = true;
|
|
|
} else {
|
|
} else {
|
|
|
$sqlArr = [
|
|
$sqlArr = [
|
|
|
'FILE_STATUS' => 'ERROR',
|
|
'FILE_STATUS' => 'ERROR',
|
|
|
- 'FILE_STATUS_info' => "Wystąpił błąd podczas odświeżania cache ({$reloadCacheResult})",
|
|
|
|
|
|
|
+ 'FILE_STATUS_info' => "Wystąpił błąd podczas pełnego odświeżania cache ({$reloadCacheResult})",
|
|
|
];
|
|
];
|
|
|
$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where FILE_STATUS = 'TO_GENERATE'";
|
|
$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where FILE_STATUS = 'TO_GENERATE'";
|
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
@@ -1080,7 +1081,7 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
|
|
|
if (!file_exists($reloadCacheResultFile)) {
|
|
if (!file_exists($reloadCacheResultFile)) {
|
|
|
$sqlArr = [
|
|
$sqlArr = [
|
|
|
'FILE_STATUS' => 'ERROR',
|
|
'FILE_STATUS' => 'ERROR',
|
|
|
- 'FILE_STATUS_info' => "Wystąpił nieznany błąd podczas odświeżania cache - nie znaleziono procesu potomnego",
|
|
|
|
|
|
|
+ 'FILE_STATUS_info' => "Wystąpił nieznany błąd podczas pełnego odświeżania cache - nie znaleziono procesu potomnego",
|
|
|
];
|
|
];
|
|
|
$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where FILE_STATUS = 'TO_GENERATE'";
|
|
$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where FILE_STATUS = 'TO_GENERATE'";
|
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
@@ -1095,11 +1096,11 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
|
|
|
$result2 = DB::getPDO()->fetchValue($query);
|
|
$result2 = DB::getPDO()->fetchValue($query);
|
|
|
if ($result2) {
|
|
if ($result2) {
|
|
|
$sqlArr = [
|
|
$sqlArr = [
|
|
|
- 'FILE_STATUS_info' => 'Wstrzymano odświeżanie cache - oczekiwanie na dokończenie szukania powiązań dla innych rekordów',
|
|
|
|
|
|
|
+ 'FILE_STATUS_info' => 'Wstrzymano pełne odświeżanie cache - oczekiwanie na dokończenie szukania powiązań dla innych rekordów',
|
|
|
];
|
|
];
|
|
|
} else {
|
|
} else {
|
|
|
$sqlArr = [
|
|
$sqlArr = [
|
|
|
- 'FILE_STATUS_info' => 'W trakcie odświeżania cache',
|
|
|
|
|
|
|
+ 'FILE_STATUS_info' => 'W trakcie pełnego odświeżania cache',
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
$query = "select count(*) from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache = 'Full' and FILE_STATUS = 'TO_GENERATE'";
|
|
$query = "select count(*) from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache = 'Full' and FILE_STATUS = 'TO_GENERATE'";
|
|
@@ -1804,9 +1805,31 @@ SQL;
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
|
|
+ $query = "select count(*) from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA` where `FILE_STATUS` = 'IN_PROGRESS' and `BI_analiza_reloadCache` = 'Part' and ID != ${ID}";
|
|
|
|
|
+ $sqlArr = [
|
|
|
|
|
+ 'ID' => $ID,
|
|
|
|
|
+ 'BI_analiza_reloadCache' => 'Part',
|
|
|
|
|
+ 'FILE_STATUS_info' => 'Odświeżam częściowo cache',
|
|
|
|
|
+ ];
|
|
|
|
|
+ do {
|
|
|
|
|
+ DB::getPDO()->query("lock tables `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA` write");
|
|
|
|
|
+ $activeReloadingCache = DB::getPDO()->fetchValue($query);
|
|
|
|
|
+ if (!$activeReloadingCache) DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlArr);
|
|
|
|
|
+ DB::getPDO()->query("unlock tables");
|
|
|
|
|
+ if ($activeReloadingCache) {
|
|
|
|
|
+ BiAuditPowiazania::saveToLog("Czekam na zakończenie częściowego odświeżania cache przez inne zadanie");
|
|
|
|
|
+ sleep(30);
|
|
|
|
|
+ }
|
|
|
|
|
+ } while (!$activeReloadingCache);
|
|
|
|
|
+
|
|
|
BiAuditPowiazania::saveToLog("Uruchamiam częściowe odświeżenie cache");
|
|
BiAuditPowiazania::saveToLog("Uruchamiam częściowe odświeżenie cache");
|
|
|
self::doReloadCache();
|
|
self::doReloadCache();
|
|
|
BiAuditPowiazania::saveToLog("Odświeżono częściowo cache");
|
|
BiAuditPowiazania::saveToLog("Odświeżono częściowo cache");
|
|
|
|
|
+
|
|
|
|
|
+ $sqlArr['BI_analiza_reloadCache'] = 'No';
|
|
|
|
|
+ $sqlArr['FILE_STATUS_info'] = 'Zakończono odświeżanie cache i wyzwolono funkcję szukania powiązań';
|
|
|
|
|
+ DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlArr);
|
|
|
|
|
+
|
|
|
$BiAuditPowiazania = new BiAuditPowiazania($ID, $tasksDirLocation);
|
|
$BiAuditPowiazania = new BiAuditPowiazania($ID, $tasksDirLocation);
|
|
|
if (!$BiAuditPowiazania->powiazaniaFound()) throw new Exception("Nie znaleziono żadnych powiązań");
|
|
if (!$BiAuditPowiazania->powiazaniaFound()) throw new Exception("Nie znaleziono żadnych powiązań");
|
|
|
//file_put_contents($xmlFile, $BiAuditPowiazania->asXml());
|
|
//file_put_contents($xmlFile, $BiAuditPowiazania->asXml());
|
|
@@ -2005,7 +2028,7 @@ class BiAuditPowiazania {
|
|
|
if (!$tasksDirLocation) self::throwException("Wrong directory of tasks location");
|
|
if (!$tasksDirLocation) self::throwException("Wrong directory of tasks location");
|
|
|
$this->tasksDirLocation = $tasksDirLocation;
|
|
$this->tasksDirLocation = $tasksDirLocation;
|
|
|
|
|
|
|
|
- $query = "select BI_analiza_minDepth, BI_analiza_maxDepth, BI_analiza_onlyTargets from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where ID = '{$ID}' and FILE_STATUS = 'IN_PROGRESS' and BI_analiza_reloadCache not in ('Full', 'Part')";
|
|
|
|
|
|
|
+ $query = "select BI_analiza_minDepth, BI_analiza_maxDepth, BI_analiza_onlyTargets from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where ID = '{$ID}' and FILE_STATUS = 'IN_PROGRESS' and BI_analiza_reloadCache not in ('Full')";
|
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
|
if (!$result) self::throwException("Błąd danych");
|
|
if (!$result) self::throwException("Błąd danych");
|
|
|
$this->ID = $ID;
|
|
$this->ID = $ID;
|