<?php
use Friendica\App;
+use Friendica\Core\System;
use Friendica\Core\Config;
use Friendica\Util\Lock;
require_once("boot.php");
function poller_run($argv, $argc){
- global $a, $db, $poller_up_start, $poller_db_duration;
+ global $a, $poller_up_start, $poller_db_duration;
$poller_up_start = microtime(true);
- $a = new App(dirname(__DIR__));
+ if (empty($a)) {
+ $a = new App(dirname(__DIR__));
+ }
- @include(".htconfig.php");
- require_once("include/dba.php");
- $db = new dba($db_host, $db_user, $db_pass, $db_data);
+ require_once ".htconfig.php";
+ require_once "include/dba.php";
+ dba::connect($db_host, $db_user, $db_pass, $db_data);
unset($db_host, $db_user, $db_pass, $db_data);
Config::load();
+ // Check the database structure and possibly fixes it
+ check_db(true);
+
// Quit when in maintenance
if (Config::get('system', 'maintenance', true)) {
return;
poller_exec_function($queue, $funcname, $argv);
$stamp = (float)microtime(true);
- dba::update('workerqueue', array('done' => true), array('id' => $queue["id"]));
+ if (dba::update('workerqueue', array('done' => true), array('id' => $queue["id"]))) {
+ Config::set('system', 'last_poller_execution', datetime_convert());
+ }
$poller_db_duration = (microtime(true) - $stamp);
} else {
logger("Function ".$funcname." does not exist");
$up_duration = number_format(microtime(true) - $poller_up_start, 3);
+ // Reset global data to avoid interferences
+ unset($_SESSION);
+
$funcname($argv, $argc);
$a->process_id = $old_process_id;
// The higher the number of parallel workers, the more we prefetch to prevent concurring access
// We decrease the limit with the number of entries left in the queue
$worker_queues = Config::get("system", "worker_queues", 4);
- $queue_length = Config::get('system', 'worker_fetch_limit', $worker_queues);
+ $queue_length = Config::get('system', 'worker_fetch_limit', 1);
$lower_job_limit = $worker_queues * $queue_length * 2;
$jobs = poller_total_entries();
return;
}
- $url = App::get_baseurl()."/worker";
+ $url = System::baseUrl()."/worker";
fetch_url($url, false, $redirects, 1);
}
poller_kill_stale_workers();
}
-if (array_search(__file__,get_included_files())===0){
+if (array_search(__file__,get_included_files())===0) {
poller_run($_SERVER["argv"],$_SERVER["argc"]);
poller_unclaim_process();