]> git.mxchange.org Git - friendica.git/commitdiff
Changed priority for onepoll/further enhancement for dbclean
authorMichael <heluecht@pirati.ca>
Mon, 31 Oct 2016 21:32:08 +0000 (21:32 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 31 Oct 2016 21:32:08 +0000 (21:32 +0000)
include/cron.php
include/dbclean.php
include/follow.php
mod/contacts.php

index c03745a4429e0d38bb1502e433ede5f0b3a516d0..5b588fee6f3499a8faada66496f7dd9dc2eaa8f2 100644 (file)
@@ -131,6 +131,9 @@ function cron_run(&$argv, &$argc){
                        proc_run(PRIORITY_LOW, 'include/dbclean.php', 2);
                        proc_run(PRIORITY_LOW, 'include/dbclean.php', 3);
                        proc_run(PRIORITY_LOW, 'include/dbclean.php', 4);
+                       proc_run(PRIORITY_LOW, 'include/dbclean.php', 5);
+                       proc_run(PRIORITY_LOW, 'include/dbclean.php', 6);
+                       proc_run(PRIORITY_LOW, 'include/dbclean.php', 7);
                } else {
                        proc_run(PRIORITY_LOW, 'include/dbclean.php');
                }
@@ -330,7 +333,11 @@ function cron_poll_contacts($argc, $argv) {
 
                        logger("Polling ".$contact["network"]." ".$contact["id"]." ".$contact["nick"]." ".$contact["name"]);
 
-                       proc_run(PRIORITY_MEDIUM, 'include/onepoll.php', $contact['id']);
+                       if ($contact["remote_self"]) {
+                               proc_run(PRIORITY_MEDIUM, 'include/onepoll.php', $contact['id']);
+                       } else {
+                               proc_run(PRIORITY_LOW, 'include/onepoll.php', $contact['id']);
+                       }
 
                        if($interval)
                                @time_sleep_until(microtime(true) + (float) $interval);
index f69489109c7da25a0fa045289fc04f64dc7112fa..22a6d4e4297b4ad3675048e3bf6df717118018c7 100644 (file)
@@ -36,55 +36,134 @@ function remove_orphans($stage = 0) {
        global $db;
 
        if (($stage == 1) OR ($stage == 0)) {
+               logger("Deleting old global item entries from item table without user copy");
+               if ($db->q("SELECT `id` FROM `item` WHERE `uid` = 0
+                               AND NOT EXISTS (SELECT `guid` FROM `item` AS `i` WHERE `item`.`guid` = `i`.`guid` AND `i`.`uid` != 0)
+                               AND `received` < UTC_TIMESTAMP() - INTERVAL 90 DAY LIMIT 10000", true)) {
+                       $count = $db->num_rows();
+                       logger("found global item orphans: ".$count);
+                       while ($orphan = $db->qfetch()) {
+                               q("DELETE FROM `item` WHERE `id` = %d", intval($orphan["id"]));
+                       }
+
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 1);
+                       }
+               }
+               $db->qclose();
+               logger("Done deleting old global item entries from item table without user copy");
+       }
+
+       if (($stage == 2) OR ($stage == 0)) {
+               logger("Deleting items without parents");
+               if ($db->q("SELECT `id` FROM `item` WHERE NOT EXISTS (SELECT `id` FROM `item` AS `i` WHERE `item`.`parent` = `i`.`id`) LIMIT 10000", true)) {
+                       $count = $db->num_rows();
+                       logger("found item orphans without parents: ".$count);
+                       while ($orphan = $db->qfetch()) {
+                               q("DELETE FROM `item` WHERE `id` = %d", intval($orphan["id"]));
+                       }
+
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 2);
+                       }
+               }
+               $db->qclose();
+               logger("Done deleting items without parents");
+       }
+
+       if (($stage == 3) OR ($stage == 0)) {
                logger("Deleting orphaned data from thread table");
                if ($db->q("SELECT `iid` FROM `thread` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `thread`.`iid`)", true)) {
-                       logger("found thread orphans: ".$db->num_rows());
+                       $count = $db->num_rows();
+                       logger("found thread orphans: ".$count);
                        while ($orphan = $db->qfetch()) {
                                q("DELETE FROM `thread` WHERE `iid` = %d", intval($orphan["iid"]));
                        }
+
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 3);
+                       }
                }
                $db->qclose();
+               logger("Done deleting orphaned data from thread table");
        }
 
-       if (($stage == 2) OR ($stage == 0)) {
+       if (($stage == 4) OR ($stage == 0)) {
                logger("Deleting orphaned data from notify table");
                if ($db->q("SELECT `iid` FROM `notify` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `notify`.`iid`)", true)) {
-                       logger("found notify orphans: ".$db->num_rows());
+                       $count = $db->num_rows();
+                       logger("found notify orphans: ".$count);
                        while ($orphan = $db->qfetch()) {
                                q("DELETE FROM `notify` WHERE `iid` = %d", intval($orphan["iid"]));
                        }
+
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 4);
+                       }
                }
                $db->qclose();
+               logger("Done deleting orphaned data from notify table");
        }
 
+       if (($stage == 5) OR ($stage == 0)) {
+               logger("Deleting orphaned data from notify-threads table");
+               if ($db->q("SELECT `id` FROM `notify-threads` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `notify-threads`.`master-parent-item`)", true)) {
+                       $count = $db->num_rows();
+                       logger("found notify-threads orphans: ".$count);
+                       while ($orphan = $db->qfetch()) {
+                               q("DELETE FROM `notify-threads` WHERE `id` = %d", intval($orphan["id"]));
+                       }
 
-       if (($stage == 3) OR ($stage == 0)) {
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 5);
+                       }
+               }
+               $db->qclose();
+               logger("Done deleting orphaned data from notify-threads table");
+       }
+
+
+       if (($stage == 6) OR ($stage == 0)) {
                logger("Deleting orphaned data from sign table");
                if ($db->q("SELECT `iid` FROM `sign` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `sign`.`iid`)", true)) {
-                       logger("found sign orphans: ".$db->num_rows());
+                       $count = $db->num_rows();
+                       logger("found sign orphans: ".$count);
                        while ($orphan = $db->qfetch()) {
                                q("DELETE FROM `sign` WHERE `iid` = %d", intval($orphan["iid"]));
                        }
+
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 6);
+                       }
                }
                $db->qclose();
+               logger("Done deleting orphaned data from sign table");
        }
 
 
-       if (($stage == 4) OR ($stage == 0)) {
+       if (($stage == 7) OR ($stage == 0)) {
                logger("Deleting orphaned data from term table");
                if ($db->q("SELECT `oid` FROM `term` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `term`.`oid`)", true)) {
-                       logger("found term orphans: ".$db->num_rows());
+                       $count = $db->num_rows();
+                       logger("found term orphans: ".$count);
                        while ($orphan = $db->qfetch()) {
                                q("DELETE FROM `term` WHERE `oid` = %d", intval($orphan["oid"]));
                        }
+
+                       // Call it again if not all entries were purged
+                       if (($count > 0) AND get_config("system", "worker")) {
+                               proc_run(PRIORITY_LOW, 'include/dbclean.php', 7);
+                       }
                }
                $db->qclose();
+               logger("Done deleting orphaned data from term table");
        }
-
-       /// @todo Based on the following query we should remove some more data
-       // SELECT `id`, `received`, `created`, `guid` FROM `item` WHERE `uid` = 0 AND NOT EXISTS (SELECT `guid` FROM `item` AS `i` WHERE `item`.`guid` = `i`.`guid` AND `i`.`uid` != 0) LIMIT 1;
-
-       logger("Done deleting orphaned data from tables");
 }
 
 if (array_search(__file__,get_included_files())===0){
index 08e74e02f3443d3b8a5849442ca4aee4710a20b6..1c33edf80ecdf6a62f6fc253ade0223dd68f557d 100644 (file)
@@ -270,7 +270,7 @@ function new_contact($uid,$url,$interactive = false) {
 
        // pull feed and consume it, which should subscribe to the hub.
 
-       proc_run(PRIORITY_MEDIUM, "include/onepoll.php", $contact_id, "force");
+       proc_run(PRIORITY_HIGH, "include/onepoll.php", $contact_id, "force");
 
        // create a follow slap
 
index 410cced8e66092326ce9c82a436372e7cf04ca96..23907669a6a91994f389da881a9afdec73ee7237 100644 (file)
@@ -237,7 +237,7 @@ function _contact_update($contact_id) {
                                intval($contact_id));
        } else
                // pull feed and consume it, which should subscribe to the hub.
-               proc_run(PRIORITY_MEDIUM, "include/onepoll.php", $contact_id, "force");
+               proc_run(PRIORITY_HIGH, "include/onepoll.php", $contact_id, "force");
 }
 
 function _contact_update_profile($contact_id) {