]> git.mxchange.org Git - friendica.git/blobdiff - include/queue.php
Reschedule killed processes at the beginning of the queue.
[friendica.git] / include / queue.php
index f40768f0d0b26abfbb5559f323eff611725c7809..9779a0733d3f65bcb5916fe37beefccacaf86f6d 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 require_once("boot.php");
 require_once('include/queue_fn.php');
+require_once('include/dfrn.php');
 
 function queue_run(&$argv, &$argc){
        global $a, $db;
@@ -21,26 +22,15 @@ function queue_run(&$argv, &$argc){
        require_once("include/datetime.php");
        require_once('include/items.php');
        require_once('include/bbcode.php');
-       require_once('include/pidfile.php');
        require_once('include/socgraph.php');
 
        load_config('config');
        load_config('system');
 
-       $lockpath = get_lockpath();
-       if ($lockpath != '') {
-               $pidfile = new pidfile($lockpath, 'queue');
-               if($pidfile->is_already_running()) {
-                       logger("queue: Already running");
-                       if ($pidfile->running_time() > 9*60) {
-                               $pidfile->kill();
-                               logger("queue: killed stale process");
-                               // Calling a new instance
-                               proc_run('php',"include/queue.php");
-                       }
+       // Don't check this stuff if the function is called by the poller
+       if (App::callstack() != "poller_run")
+               if (App::is_already_running('queue', 'include/queue.php', 540))
                        return;
-               }
-       }
 
        $a->set_baseurl(get_config('system','url'));
 
@@ -58,7 +48,7 @@ function queue_run(&$argv, &$argc){
        logger('queue: start');
 
        // Handling the pubsubhubbub requests
-       proc_run('php','include/pubsubpublish.php');
+       proc_run(PRIORITY_HIGH,'include/pubsubpublish.php');
 
        $interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval')));
 
@@ -70,7 +60,7 @@ function queue_run(&$argv, &$argc){
        if($r) {
                foreach($r as $rr) {
                        logger('queue: deliverq');
-                       proc_run('php','include/delivery.php',$rr['cmd'],$rr['item'],$rr['contact']);
+                       proc_run(PRIORITY_HIGH,'include/delivery.php',$rr['cmd'],$rr['item'],$rr['contact']);
                        if($interval)
                                @time_sleep_until(microtime(true) + (float) $interval);
                }
@@ -179,7 +169,7 @@ function queue_run(&$argv, &$argc){
                switch($contact['network']) {
                        case NETWORK_DFRN:
                                logger('queue: dfrndelivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>');
-                               $deliver_status = dfrn_deliver($owner,$contact,$data);
+                               $deliver_status = dfrn::deliver($owner,$contact,$data);
 
                                if($deliver_status == (-1)) {
                                        update_queue_time($q_item['id']);
@@ -203,7 +193,7 @@ function queue_run(&$argv, &$argc){
                        case NETWORK_DIASPORA:
                                if($contact['notify']) {
                                        logger('queue: diaspora_delivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>');
-                                       $deliver_status = diaspora_transmit($owner,$contact,$data,$public,true);
+                                       $deliver_status = diaspora::transmit($owner,$contact,$data,$public,true);
 
                                        if($deliver_status == (-1)) {
                                                update_queue_time($q_item['id']);