]> git.mxchange.org Git - friendica.git/commitdiff
Optimized priorities for the automated expiring of items
authorMichael <heluecht@pirati.ca>
Wed, 24 May 2017 06:29:47 +0000 (06:29 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 24 May 2017 06:29:47 +0000 (06:29 +0000)
include/cron.php
include/items.php
include/notifier.php

index bac9c8a3d8827e40b678dde262aeaeedbd3e9120..9b3a5e16c13eb548c4de765e1d7473ec8cc010f7 100644 (file)
@@ -195,7 +195,7 @@ function cron_poll_contacts($argc, $argv) {
                                $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3);
                        }
 
-                       if ($contact['priority'] AND !$force) {
+                       if (($contact['priority'] >= 0) AND !$force) {
                                $update = false;
 
                                $t = $contact['last-update'];
@@ -225,11 +225,16 @@ function cron_poll_contacts($argc, $argv) {
                                                }
                                                break;
                                        case 1:
-                                       default:
                                                if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 hour")) {
                                                        $update = true;
                                                }
                                                break;
+                                       case 0:
+                                       default:
+                                               if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 15 minute")) {
+                                                       $update = true;
+                                               }
+                                               break;
                                }
                                if (!$update) {
                                        continue;
index c36b842b4b149b638a62063ab1287b3d5a496145..f6027e56ba2375ec8d045268db7d026dc60aa2b5 100644 (file)
@@ -2076,7 +2076,7 @@ function item_expire($uid, $days, $network = "", $force = false) {
                drop_item($item['id'], false);
        }
 
-       proc_run(PRIORITY_HIGH, "include/notifier.php", "expire", $uid);
+       proc_run(PRIORITY_LOW, "include/notifier.php", "expire", $uid);
 
 }
 
@@ -2099,7 +2099,7 @@ function drop_items($items) {
        // multiple threads may have been deleted, send an expire notification
 
        if ($uid) {
-               proc_run(PRIORITY_HIGH, "include/notifier.php", "expire", $uid);
+               proc_run(PRIORITY_LOW, "include/notifier.php", "expire", $uid);
        }
 }
 
@@ -2290,11 +2290,15 @@ function drop_item($id, $interactive = true) {
                        }
                }
 
-               $drop_id = intval($item['id']);
+               // send the notification upstream/downstream when it is one of our posts
+               // We don't have to do this for foreign posts
+               /// @todo Check if we still can delete foreign comments on our own post
+               if ($item['wall'] OR $item['origin']) {
+                       $drop_id = intval($item['id']);
+                       $priority = ($interactive ? PRIORITY_HIGH : PRIORITY_LOW);
 
-               // send the notification upstream/downstream as the case may be
-
-               proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id);
+                       proc_run($priority, "include/notifier.php", "drop", $drop_id);
+               }
 
                if (! $interactive) {
                        return $owner;
index 4f9b34d014df60ec649462625a755922ab47a839..dd0a65089a12c61a09b1599b1023c15d66e797fa 100644 (file)
@@ -55,6 +55,17 @@ function notifier_run(&$argv, &$argc){
                return;
        }
 
+       // Inherit the priority
+       $queue = dba::select('workerqueue', array('priority'), array('pid' => getmypid()), array('limit' => 1));
+       if (dbm::is_result($queue)) {
+               $priority = $queue['priority'];
+               logger('inherited priority: '.$priority);
+       } else {
+               // Normally this shouldn't happen.
+               $priority = PRIORITY_HIGH;
+               logger('no inherited priority! Something is wrong.');
+       }
+
        logger('notifier: invoked: ' . print_r($argv,true), LOGGER_DEBUG);
 
        $cmd = $argv[1];
@@ -348,7 +359,7 @@ function notifier_run(&$argv, &$argc){
                        // a delivery fork. private groups (forum_mode == 2) do not uplink
 
                        if ((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) {
-                               proc_run(PRIORITY_HIGH,'include/notifier.php','uplink',$item_id);
+                               proc_run($priority, 'include/notifier.php', 'uplink', $item_id);
                        }
 
                        $conversants = array();
@@ -487,7 +498,7 @@ function notifier_run(&$argv, &$argc){
                        }
                        logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
 
-                       proc_run(PRIORITY_HIGH,'include/delivery.php', $cmd, $item_id, $contact['id']);
+                       proc_run($priority, 'include/delivery.php', $cmd, $item_id, $contact['id']);
                }
        }
 
@@ -552,7 +563,7 @@ function notifier_run(&$argv, &$argc){
 
                                if ((! $mail) && (! $fsuggest) && (! $followup)) {
                                        logger('notifier: delivery agent: '.$rr['name'].' '.$rr['id'].' '.$rr['network'].' '.$target_item["guid"]);
-                                       proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$rr['id']);
+                                       proc_run($priority, 'include/delivery.php', $cmd, $item_id, $rr['id']);
                                }
                        }
                }
@@ -592,7 +603,7 @@ function notifier_run(&$argv, &$argc){
                }
 
                // Handling the pubsubhubbub requests
-               proc_run(PRIORITY_HIGH,'include/pubsubpublish.php');
+               proc_run($priority, 'include/pubsubpublish.php');
        }
 
        logger('notifier: calling hooks', LOGGER_DEBUG);