Nchan: add timeout to publishers to force update

This commit is contained in:
bergware
2024-01-05 12:56:19 +01:00
parent 5e3301945e
commit 0ff0ef490e
7 changed files with 35 additions and 25 deletions
+2 -1
View File
@@ -332,7 +332,8 @@ devices.on('message', function(msg,meta) {
break;
case 1:
// running parity status
$.each(msg.split(';'),function(k,v) {if ($('#line'+k).length>0) $('#line'+k).html(v);});
var get = JSON.parse(msg);
$.each(get,function(k,v) {if ($('#line'+k).length>0) $('#line'+k).html(v);});
// button control
if ($('#pauseButton').length>0 && $('#pauseButton').prop('disabled')==false) {
if (!msg && $('#cancelButton').length>0 && $('#cancelButton').val()=="_(Cancel)_") {
+12 -13
View File
@@ -17,10 +17,7 @@ $varroot = '/var/local/emhttp';
$log = '/boot/config/parity-checks.log';
$stamps = '/var/tmp/stamps.ini';
$resync = '/var/tmp/resync.ini';
$md5_old = -1;
$spot_old = -1;
$fs_old = -1;
$proc_old = -1;
$md5_old = $spot_old = $fs_old = $proc_old = $timeout = -1;
require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/webGui/include/publish.php";
@@ -81,17 +78,17 @@ while (true) {
}
$synced = create_sync($stamps);
$sbSynced = array_shift($synced) ?: _var($var,'sbSynced',0);
$data = [];
$echo = [];
$spot = _var($var,'mdResyncPos',0);
if ($spot>0) {
[$size,$delta,$bytes] = [_var($var,'mdResyncSize',0),_var($var,'mdResyncDt',0),_var($var,'mdResyncDb',0)];
create_file($resync,_var($var,'mdResyncAction'),$size);
$data[] = my_scale($size*1024,$unit,-1)." $unit";
$data[] = _(my_clock(floor((time()-$sbSynced)/60)),2).($delta ? '' : ' ('._('paused').')');
$data[] = my_scale($spot*1024,$unit)." $unit (".number_format($spot/($size/100+1),1,$dot,'')." %)";
$data[] = $delta ? my_scale($bytes*1024/$delta,$unit, 1)." $unit/sec" : '---';
$data[] = $bytes ? _(my_clock(round(((($delta*(($size-$spot)/($bytes/100+1)))/100)/60),0)),2) : _('Unknown');
$data[] = $var['sbSyncErrs'];
$echo[] = my_scale($size*1024,$unit,-1)." $unit";
$echo[] = _(my_clock(floor((time()-$sbSynced)/60)),2).($delta ? '' : ' ('._('paused').')');
$echo[] = my_scale($spot*1024,$unit)." $unit (".number_format($spot/($size/100+1),1,$dot,'')." %)";
$echo[] = $delta ? my_scale($bytes*1024/$delta,$unit, 1)." $unit/sec" : '---';
$echo[] = $bytes ? _(my_clock(round(((($delta*(($size-$spot)/($bytes/100+1)))/100)/60),0)),2) : _('Unknown');
$echo[] = $var['sbSyncErrs'];
} elseif (_var($var,'sbSynced') && _var($var,'sbSynced2')) {
$timestamp = str_replace(['.0','.'],[' ',' '],date('Y.M.d H:i:s',$var['sbSynced2']));
if (new_parity_log($timestamp)) {
@@ -117,11 +114,13 @@ while (true) {
elseif (exec("zpool status|grep -c 'scrub in progress'")>0) $process = 4;
else $process = 0;
$echo = implode(';',$data);
$echo = json_encode($echo);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
$timeout++;
if ($md5_new !== $md5_old || $timeout >= 60) {
publish('parity', $echo);
$md5_old = $md5_new;
$timeout = -1;
}
if ($spot !== $spot_old) {
publish('paritymonitor', $spot>0 ? 1 : 0);
+4 -2
View File
@@ -14,7 +14,7 @@
<?
$docroot = '/usr/local/emhttp';
$varroot = '/var/local/emhttp';
$md5_old = -1;
$md5_old = $timeout = -1;
require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/webGui/include/publish.php";
@@ -98,9 +98,11 @@ while (true) {
foreach ($share as $name) $echo['stream'][] = $count[$name]??0;
$echo = json_encode($echo);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
$timeout++;
if ($md5_new !== $md5_old || $timeout >= 12) {
publish('update1', $echo);
$md5_old = $md5_new;
$timeout = -1;
}
sleep(5);
}
+4 -2
View File
@@ -16,7 +16,7 @@ $docroot = '/usr/local/emhttp';
$varroot = '/var/local/emhttp';
$stamps = '/var/tmp/stamps.ini';
$resync = '/var/tmp/resync.ini';
$md5_old = -1;
$md5_old = $timeout = -1;
require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/webGui/include/publish.php";
@@ -470,9 +470,11 @@ while (true) {
}
$echo = json_encode($echo);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
$timeout++;
if ($md5_new !== $md5_old || $timeout >= 30) {
publish('update2', $echo);
$md5_old = $md5_new;
$timeout = -1;
}
sleep(2);
}
+4 -2
View File
@@ -15,8 +15,8 @@
$docroot = '/usr/local/emhttp';
$net = '/sys/class/net';
$bond = '/proc/net/bonding';
$md5_old = $timeout = -1;
$data = [];
$md5_old = -1;
require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/webGui/include/publish.php";
@@ -137,10 +137,12 @@ while (true) {
$echo = json_encode($echo);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
$timeout++;
if ($md5_new !== $md5_old || $timeout >= 60) {
publish('update3', $echo);
$md5_old = $md5_new;
$time0 = $time1;
$timeout = -1;
}
sleep(1);
$time1 = microtime(true);
+4 -2
View File
@@ -25,7 +25,7 @@ require_once "$docroot/webGui/include/Translations.php";
// remember current language
$locale_init = $locale;
$md5_old = -1;
$md5_old = $timeout = -1;
$state = [
'ONLINE' => _('Online'),
'SLAVE' => '('._('slave').')',
@@ -123,9 +123,11 @@ while (true) {
}
$echo = json_encode($echo);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
$timeout++;
if ($md5_new !== $md5_old || $timeout >= 20) {
publish('apcups', $echo);
$md5_old = $md5_new;
$timeout = -1;
}
sleep(3);
}
+5 -3
View File
@@ -27,7 +27,7 @@ function my_scale($value, &$unit) {
return number_format($value, $decimals, '.', $value>9999 ? ',':'');
}
$md5_old = -1;
$md5_old = $timeout = -1;
while (true) {
$now = time();
$echo = [];
@@ -39,10 +39,12 @@ while (true) {
}
$echo = json_encode($echo);
$md5_new = md5($echo,true);
if ($md5_new !== $md5_old) {
$timeout++;
if ($md5_new !== $md5_old || $timeout >= 60) {
publish('wireguard', $echo);
$md5_old = $md5_new;
$timeout = -1;
}
sleep(1);
}
?>
?>