X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcron.php;h=c1e4338d6fe4edece32d3aa0cc5e91c095ea2221;hb=747dc934f73643933fb46a720dd0570069eaf36a;hp=db7d44be0b9c583cccef8be4b99090b88cf433a1;hpb=a0aeea4a89e26f21125f52b4a8657ca93f2a1f80;p=friendica.git diff --git a/include/cron.php b/include/cron.php index db7d44be0b..c1e4338d6f 100644 --- a/include/cron.php +++ b/include/cron.php @@ -35,6 +35,7 @@ function cron_run(&$argv, &$argc){ require_once('include/email.php'); require_once('include/socgraph.php'); require_once('mod/nodeinfo.php'); + require_once('include/post_update.php'); load_config('config'); load_config('system'); @@ -71,10 +72,6 @@ function cron_run(&$argv, &$argc){ proc_run('php',"include/queue.php"); - // run diaspora photo queue process in the background - - proc_run('php',"include/dsprphotoq.php"); - // run the process to discover global contacts in the background proc_run('php',"include/discover_poco.php"); @@ -105,13 +102,14 @@ function cron_run(&$argv, &$argc){ // Check OStatus conversations // Check only conversations with mentions (for a longer time) - check_conversations(true); + ostatus::check_conversations(true); // Check every conversation - check_conversations(false); + ostatus::check_conversations(false); - // Set the gcontact-id in the item table if missing - item_set_gcontact(); + // Call possible post update functions + // see include/post_update.php for more details + post_update(); // update nodeinfo data nodeinfo_cron(); @@ -339,35 +337,37 @@ function cron_clear_cache(&$a) { if ($max_tablesize == 0) $max_tablesize = 100 * 1000000; // Default are 100 MB - // Minimum fragmentation level in percent - $fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100; - if ($fragmentation_level == 0) - $fragmentation_level = 0.3; // Default value is 30% + if ($max_tablesize > 0) { + // Minimum fragmentation level in percent + $fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100; + if ($fragmentation_level == 0) + $fragmentation_level = 0.3; // Default value is 30% - // Optimize some tables that need to be optimized - $r = q("SHOW TABLE STATUS"); - foreach($r as $table) { + // Optimize some tables that need to be optimized + $r = q("SHOW TABLE STATUS"); + foreach($r as $table) { - // Don't optimize tables that are too large - if ($table["Data_length"] > $max_tablesize) - continue; + // Don't optimize tables that are too large + if ($table["Data_length"] > $max_tablesize) + continue; - // Don't optimize empty tables - if ($table["Data_length"] == 0) - continue; + // Don't optimize empty tables + if ($table["Data_length"] == 0) + continue; - // Calculate fragmentation - $fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]); + // Calculate fragmentation + $fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]); - logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG); + logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG); - // Don't optimize tables that needn't to be optimized - if ($fragmentation < $fragmentation_level) - continue; + // Don't optimize tables that needn't to be optimized + if ($fragmentation < $fragmentation_level) + continue; - // So optimize it - logger("Optimize Table ".$table["Name"], LOGGER_DEBUG); - q("OPTIMIZE TABLE `%s`", dbesc($table["Name"])); + // So optimize it + logger("Optimize Table ".$table["Name"], LOGGER_DEBUG); + q("OPTIMIZE TABLE `%s`", dbesc($table["Name"])); + } } set_config('system','cache_last_cleared', time()); @@ -407,6 +407,15 @@ function cron_repair_database() { // This call is very "cheap" so we can do it at any time without a problem q("UPDATE `item` INNER JOIN `item` AS `parent` ON `parent`.`uri` = `item`.`parent-uri` AND `parent`.`uid` = `item`.`uid` SET `item`.`parent` = `parent`.`id` WHERE `item`.`parent` = 0"); + // There was an issue where the nick vanishes from the contact table + q("UPDATE `contact` INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` SET `nick` = `nickname` WHERE `self` AND `nick`=''"); + + // Update the global contacts for local users + $r = q("SELECT `uid` FROM `user` WHERE `verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired`"); + if ($r) + foreach ($r AS $user) + update_gcontact_for_user($user["uid"]); + /// @todo /// - remove thread entries without item /// - remove sign entries without item