Some more improvements
This commit is contained in:
parent
9039e60a06
commit
70c08dee1d
3 changed files with 31 additions and 19 deletions
13
boot.php
13
boot.php
|
@ -22,7 +22,6 @@ require_once(__DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'a
|
||||||
|
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
use Friendica\Core\Worker;
|
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
use Friendica\Util\Lock;
|
use Friendica\Util\Lock;
|
||||||
|
|
||||||
|
@ -1030,6 +1029,18 @@ function get_max_import_size() {
|
||||||
return ((x($a->config, 'max_import_size')) ? $a->config['max_import_size'] : 0 );
|
return ((x($a->config, 'max_import_size')) ? $a->config['max_import_size'] : 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief compatibilty wrapper for Worker::add function
|
||||||
|
*
|
||||||
|
* @param (integer|array) priority or parameter array, $cmd atrings are deprecated and are ignored
|
||||||
|
*
|
||||||
|
* @return boolean "false" if proc_run couldn't be executed
|
||||||
|
*/
|
||||||
|
function proc_run() {
|
||||||
|
$proc_args = func_get_args();
|
||||||
|
call_user_func_array('Friendica\Core\Worker::add', $proc_args);
|
||||||
|
}
|
||||||
|
|
||||||
function current_theme() {
|
function current_theme() {
|
||||||
$app_base_themes = array('duepuntozero', 'dispy', 'quattro');
|
$app_base_themes = array('duepuntozero', 'dispy', 'quattro');
|
||||||
|
|
||||||
|
|
|
@ -42,17 +42,7 @@ function poller_run($argv, $argc) {
|
||||||
|
|
||||||
load_hooks();
|
load_hooks();
|
||||||
|
|
||||||
// At first check the maximum load. We shouldn't continue with a high load
|
|
||||||
if ($a->maxload_reached()) {
|
|
||||||
logger('Pre check: maximum load reached, quitting.', LOGGER_DEBUG);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We now start the process. This is done after the load check since this could increase the load.
|
|
||||||
$a->start_process();
|
|
||||||
|
|
||||||
$run_cron = (($argc <= 1) || ($argv[1] != "no_cron"));
|
$run_cron = (($argc <= 1) || ($argv[1] != "no_cron"));
|
||||||
|
|
||||||
Worker::processQueue($run_cron);
|
Worker::processQueue($run_cron);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ namespace Friendica\Core;
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
|
use Friendica\Core\Worker;
|
||||||
use Friendica\Util\Lock;
|
use Friendica\Util\Lock;
|
||||||
|
|
||||||
use dba;
|
use dba;
|
||||||
|
@ -34,6 +35,15 @@ class Worker {
|
||||||
|
|
||||||
self::$up_start = microtime(true);
|
self::$up_start = microtime(true);
|
||||||
|
|
||||||
|
// At first check the maximum load. We shouldn't continue with a high load
|
||||||
|
if ($a->maxload_reached()) {
|
||||||
|
logger('Pre check: maximum load reached, quitting.', LOGGER_DEBUG);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We now start the process. This is done after the load check since this could increase the load.
|
||||||
|
$a->start_process();
|
||||||
|
|
||||||
// Kill stale processes every 5 minutes
|
// Kill stale processes every 5 minutes
|
||||||
$last_cleanup = Config::get('system', 'poller_last_cleaned', 0);
|
$last_cleanup = Config::get('system', 'poller_last_cleaned', 0);
|
||||||
if (time() > ($last_cleanup + 300)) {
|
if (time() > ($last_cleanup + 300)) {
|
||||||
|
@ -589,8 +599,7 @@ class Worker {
|
||||||
// Are there fewer workers running as possible? Then fork a new one.
|
// Are there fewer workers running as possible? Then fork a new one.
|
||||||
if (!Config::get("system", "worker_dont_fork") && ($queues > ($active + 1)) && ($entries > 1)) {
|
if (!Config::get("system", "worker_dont_fork") && ($queues > ($active + 1)) && ($entries > 1)) {
|
||||||
logger("Active workers: ".$active."/".$queues." Fork a new worker.", LOGGER_DEBUG);
|
logger("Active workers: ".$active."/".$queues." Fork a new worker.", LOGGER_DEBUG);
|
||||||
$args = array("include/poller.php", "no_cron");
|
self::spawnWorker();
|
||||||
get_app()->proc_run($args);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -603,7 +612,7 @@ class Worker {
|
||||||
* @return integer Number of active poller processes
|
* @return integer Number of active poller processes
|
||||||
*/
|
*/
|
||||||
private static function activeWorkers() {
|
private static function activeWorkers() {
|
||||||
$workers = q("SELECT COUNT(*) AS `processes` FROM `process` WHERE `command` = 'poller.php'");
|
$workers = q("SELECT COUNT(*) AS `processes` FROM `process` WHERE `command` = 'Worker.php'");
|
||||||
|
|
||||||
return $workers[0]["processes"];
|
return $workers[0]["processes"];
|
||||||
}
|
}
|
||||||
|
@ -821,9 +830,7 @@ class Worker {
|
||||||
self::runCron();
|
self::runCron();
|
||||||
|
|
||||||
logger('Call poller', LOGGER_DEBUG);
|
logger('Call poller', LOGGER_DEBUG);
|
||||||
|
self::spawnWorker();
|
||||||
$args = array("include/poller.php", "no_cron");
|
|
||||||
get_app()->proc_run($args);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -871,6 +878,11 @@ class Worker {
|
||||||
self::killStaleWorkers();
|
self::killStaleWorkers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function spawnWorker() {
|
||||||
|
$args = array("include/poller.php", "no_cron");
|
||||||
|
get_app()->proc_run($args);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Adds tasks to the worker queue
|
* @brief Adds tasks to the worker queue
|
||||||
*
|
*
|
||||||
|
@ -973,8 +985,7 @@ class Worker {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now call the poller to execute the jobs that we just added to the queue
|
// Now call the poller to execute the jobs that we just added to the queue
|
||||||
$args = array("include/poller.php", "no_cron");
|
self::spawnWorker();
|
||||||
get_app()->proc_run($args);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue