]> git.mxchange.org Git - friendica.git/commitdiff
We got rid of two workerqueue queries, yeah!
authorMichael <heluecht@pirati.ca>
Sun, 11 Jun 2017 19:51:18 +0000 (19:51 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 11 Jun 2017 19:51:18 +0000 (19:51 +0000)
include/notifier.php
include/poller.php
include/pubsubpublish.php
src/App.php

index d7e8a9ccec5a6760cf380de608ad0d8929f39c15..28d437f4ceac73576b8e378737781e46041ea6e1 100644 (file)
@@ -55,19 +55,6 @@ function notifier_run(&$argv, &$argc){
                return;
        }
 
-       // Inherit the priority
-       $queue = dba::select('workerqueue', array('priority', 'created'), array('pid' => getmypid()), array('limit' => 1));
-       if (dbm::is_result($queue)) {
-               $priority = (int)$queue['priority'];
-               $process_created = $queue['created'];
-               logger('inherited priority: '.$priority);
-       } else {
-               // Normally this shouldn't happen.
-               $priority = PRIORITY_HIGH;
-               $process_created = datetime_convert();
-               logger('no inherited priority! Something is wrong.');
-       }
-
        logger('notifier: invoked: ' . print_r($argv,true), LOGGER_DEBUG);
 
        $cmd = $argv[1];
@@ -361,7 +348,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, 'include/notifier.php', 'uplink', $item_id);
+                               proc_run($a->queue['priority'], 'include/notifier.php', 'uplink', $item_id);
                        }
 
                        $conversants = array();
@@ -500,7 +487,7 @@ function notifier_run(&$argv, &$argc){
                        }
                        logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
 
-                       proc_run(array('priority' => $priority, 'created' => $process_created, 'dont_fork' => true),
+                       proc_run(array('priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true),
                                        'include/delivery.php', $cmd, $item_id, $contact['id']);
                }
        }
@@ -566,7 +553,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(array('priority' => $priority, 'created' => $process_created, 'dont_fork' => true),
+                                       proc_run(array('priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true),
                                                        'include/delivery.php', $cmd, $item_id, $rr['id']);
                                }
                        }
@@ -607,7 +594,7 @@ function notifier_run(&$argv, &$argc){
                }
 
                // Handling the pubsubhubbub requests
-               proc_run(array('priority' => PRIORITY_HIGH, 'created' => $process_created, 'dont_fork' => true),
+               proc_run(array('priority' => PRIORITY_HIGH, 'created' => $a->queue['created'], 'dont_fork' => true),
                                'include/pubsubpublish.php');
        }
 
index 8784931d3c6106652d3d542490769702f7a3e470..89b0a24dbcf0cf9f804b68503d5cc5b188396e46 100644 (file)
@@ -84,6 +84,9 @@ function poller_run($argv, $argc){
        // We fetch the next queue entry that is about to be executed
        while ($r = poller_worker_process()) {
 
+               // Assure that the priority is an integer value
+               $r[0]['priority'] = (int)$r[0]['priority'];
+
                // If we got that queue entry we claim it for us
                if (!poller_claim_process($r[0])) {
                        dba::unlock();
@@ -255,10 +258,12 @@ function poller_exec_function($queue, $funcname, $argv) {
        // But preserve the old one for the worker
        $old_process_id = $a->process_id;
        $a->process_id = uniqid("wrk", true);
+       $a->queue = $queue;
 
        $funcname($argv, $argc);
 
        $a->process_id = $old_process_id;
+       unset($a->queue);
 
        $duration = number_format(microtime(true) - $stamp, 3);
 
index 7c70059f90fd1a151f06b03d0ffe5e8cdcdce468..3265fd1e16097d87ff5cfea529e70202cae16dd8 100644 (file)
@@ -7,27 +7,18 @@ require_once('include/items.php');
 require_once('include/ostatus.php');
 
 function pubsubpublish_run(&$argv, &$argc){
+       global $a;
 
        if ($argc > 1) {
                $pubsubpublish_id = intval($argv[1]);
        } else {
-               // Inherit the creation time
-               $queue = dba::select('workerqueue', array('created'), array('pid' => getmypid()), array('limit' => 1));
-               if (dbm::is_result($queue)) {
-                       $process_created = $queue['created'];
-               } else {
-                       // Normally this shouldn't happen.
-                       $process_created = datetime_convert();
-                       logger('no inherited priority! Something is wrong.');
-               }
-
                // We'll push to each subscriber that has push > 0,
                // i.e. there has been an update (set in notifier.php).
                $r = q("SELECT `id`, `callback_url` FROM `push_subscriber` WHERE `push` > 0");
 
                foreach ($r as $rr) {
                        logger("Publish feed to ".$rr["callback_url"], LOGGER_DEBUG);
-                       proc_run(array('priority' => PRIORITY_HIGH, 'created' => $process_created, 'dont_fork' => true),
+                       proc_run(array('priority' => PRIORITY_HIGH, 'created' => $a->queue['created'], 'dont_fork' => true),
                                        'include/pubsubpublish.php', $rr["id"]);
                }
        }
index f6b568ae8ac2c59b5c3e532ef81f8eacce318740..94ca007511297c5b5b73b1e85771dcf290ce738e 100644 (file)
@@ -100,6 +100,7 @@ class App {
         */
        public $template_engine_instance = array();
        public $process_id;
+       public $queue;
        private $ldelim = array(
                'internal' => '',
                'smarty3' => '{{'