Nominatim/utils/blocks.php

56 lines
1.7 KiB
PHP
Raw Normal View History

2012-12-08 21:38:10 +04:00
#!/usr/bin/php -Cq
<?php
2016-09-04 04:19:48 +03:00
require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
2012-12-08 21:38:10 +04:00
$aCMDOptions
= array(
2016-09-04 04:19:48 +03:00
"Manage service blocks / restrictions",
array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
array('list', 'l', 0, 1, 0, 0, 'bool', 'List recent blocks'),
array('delete', 'd', 0, 1, 0, 0, 'bool', 'Clear recent blocks list'),
array('flush', '', 0, 1, 0, 0, 'bool', 'Flush all blocks / stats'),
);
2016-09-04 04:19:48 +03:00
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
2012-12-08 21:38:10 +04:00
2016-09-04 04:19:48 +03:00
$m = getBucketMemcache();
if (!$m) {
2016-09-04 04:19:48 +03:00
echo "ERROR: Bucket memcache is not configured\n";
exit;
}
2012-12-08 21:38:10 +04:00
if ($aResult['list']) {
2016-09-04 04:19:48 +03:00
$iCurrentSleeping = $m->get('sleepCounter');
echo "\n Sleeping blocks count: $iCurrentSleeping\n";
2016-09-04 04:19:48 +03:00
$aBlocks = getBucketBlocks();
echo "\n";
printf(" %-40s | %12s | %7s | %13s | %31s | %8s\n", "Key", "Total Blocks", "Current", "Still Blocked", "Last Block Time", "Sleeping");
printf(" %'--40s-|-%'-12s-|-%'-7s-|-%'-13s-|-%'-31s-|-%'-8s\n", "", "", "", "", "", "");
foreach ($aBlocks as $sKey => $aDetails) {
printf(
" %-40s | %12s | %7s | %13s | %31s | %8s\n",
$sKey,
$aDetails['totalBlocks'],
(int)$aDetails['currentBucketSize'],
$aDetails['currentlyBlocked']?'Y':'N',
date("r", $aDetails['lastBlockTimestamp']),
$aDetails['isSleeping']?'Y':'N'
);
2016-09-04 04:19:48 +03:00
}
echo "\n";
}
2012-12-08 21:38:10 +04:00
if ($aResult['delete']) {
2016-09-04 04:19:48 +03:00
$m->set('sleepCounter', 0);
clearBucketBlocks();
}
if ($aResult['flush']) {
2016-09-04 04:19:48 +03:00
$m->flush();
}