]> git.mxchange.org Git - friendica.git/commitdiff
schedule the queue re-delivery process
authorFriendika <info@friendika.com>
Mon, 22 Nov 2010 23:30:52 +0000 (15:30 -0800)
committerFriendika <info@friendika.com>
Mon, 22 Nov 2010 23:30:52 +0000 (15:30 -0800)
include/notifier.php
include/poller.php
include/queue.php

index bbc4f00474364860752edd5acf99bae3160b57ce..dde538a6b1b266e7e351eebfbf42c7ec85def81a 100644 (file)
 
                                if($deliver_status == (-1)) {
                                        // queue message for redelivery
-
+                                       q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
+                                               VALUES ( %d, '%s', '%s', '%s') ",
+                                               intval($contact['id']),
+                                               dbesc(datetime_convert()),
+                                               dbesc(datetime_convert()),
+                                               dbesc($atom)
+                                       );
                                }
 
                                break;
 
                                        if($deliver_status == (-1)) {
                                                // queue message for redelivery
+                                               q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
+                                                       VALUES ( %d, '%s', '%s', '%s') ",
+                                                       intval($contact['id']),
+                                                       dbesc(datetime_convert()),
+                                                       dbesc(datetime_convert()),
+                                                       dbesc($slap)
+                                               );
 
                                        }
 
                                                                $deliver_status = slapper($owner,$contact['notify'],$slappy);
                                                                if($deliver_status == (-1)) {
                                                                        // queue message for redelivery
-                                                                       // if not already in queue
-                                                                       // else if deliver_status ok and queued, remove from queue
-                                                                       
+                                                                       q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
+                                                                               VALUES ( %d, '%s', '%s', '%s') ",
+                                                                               intval($contact['id']),
+                                                                               dbesc(datetime_convert()),
+                                                                               dbesc(datetime_convert()),
+                                                                               dbesc($slappy)
+                                                                       );                                                              
                                                                }
                                                        }
                                                }
                        foreach($slaps as $slappy) {
                                if($url) {
                                        $deliver_status = slapper($owner,$url,$slappy);
+                                       // TODO: redeliver/queue these items on failure, though there is no contact record
                                }
                        }
                }
index a34a1e01fd398be2700f9467201578b1b3af438f..a9c1a28cac468e653cedd3deaab32bd5952eec6b 100644 (file)
 
        $a->set_baseurl(get_config('system','url'));
 
+
+               // run queue delivery process in the background
+
+               $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
+               proc_close(proc_open("\"$php_path\" \"include/queue.php\" &", array(), $foo));
+
+
        $force = false;
        if(($argc > 1) && ($argv[1] == 'force'))
                $force = true;
index b7fb478b4e3aab2329c52a6d7148c5487b0431d0..7df510ef43226d27ca3bf0b03915212846a1d4a7 100644 (file)
@@ -45,7 +45,7 @@ function remove_queue_item($id) {
                q("DELETE FROM `queue` WHERE `created` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
        }
                
-       $r = q("SELECT `id` FROM `queue` WHERE 1 ");
+       $r = q("SELECT `id` FROM `queue` WHERE `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ");
 
        if(! count($r))
                killme();