Browse Source

Merge pull request #2838 from annando/1610-dbstructure-maintenance

dbstructure now switches in the maintenance mode when updating
tags/3.5.1
rabuzarus 4 years ago
committed by GitHub
parent
commit
32f49b4de2
3 changed files with 18 additions and 0 deletions
  1. +6
    -0
      include/dbstructure.php
  2. +8
    -0
      include/poller.php
  3. +4
    -0
      mod/maintenance.php

+ 6
- 0
include/dbstructure.php View File

@@ -126,6 +126,9 @@ function print_structure($database, $charset) {
function update_structure($verbose, $action, $tables=null, $definition=null) {
global $a, $db;

if ($action)
set_config('system', 'maintenance', 1);

if (isset($a->config["system"]["db_charset"]))
$charset = $a->config["system"]["db_charset"];
else
@@ -241,6 +244,9 @@ function update_structure($verbose, $action, $tables=null, $definition=null) {
}
}

if ($action)
set_config('system', 'maintenance', 0);

return $errors;
}



+ 8
- 0
include/poller.php View File

@@ -29,6 +29,10 @@ function poller_run(&$argv, &$argc){
unset($db_host, $db_user, $db_pass, $db_data);
};

// Quit when in maintenance
if (get_config('system', 'maintenance', true))
return;

$a->start_process();

$mypid = getmypid();
@@ -71,6 +75,10 @@ function poller_run(&$argv, &$argc){

while ($r = q("SELECT * FROM `workerqueue` WHERE `executed` = '0000-00-00 00:00:00' ORDER BY `priority`, `created` LIMIT 1")) {

// Quit when in maintenance
if (get_config('system', 'maintenance', true))
return;

// Constantly check the number of parallel database processes
if ($a->max_processes_reached())
return;


+ 4
- 0
mod/maintenance.php View File

@@ -1,6 +1,10 @@
<?php

function maintenance_content(&$a) {
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600');

return replace_macros(get_markup_template('maintenance.tpl'), array(
'$sysdown' => t('System down for maintenance')
));


Loading…
Cancel
Save