X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fqueue.php;h=d4fc7dbd6277d0aa0cebd7fe198fa5a2efdc0d54;hb=a6603a54d9c68d1efee553e747de233f992dc3d2;hp=837ae31d77dffbc4f0582f55447033cb750e2a52;hpb=60ef474d4607fa48a4b5c4d54cbad2b8e2fe9fef;p=friendica.git diff --git a/include/queue.php b/include/queue.php index 837ae31d77..d4fc7dbd62 100644 --- a/include/queue.php +++ b/include/queue.php @@ -1,5 +1,5 @@ set_baseurl(get_config('system','url')); + $deadguys = array(); + logger('queue: start'); $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue` @@ -48,9 +55,9 @@ function remove_queue_item($id) { $r = q("SELECT `id` FROM `queue` WHERE `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE "); - if(! count($r)) - killme(); - + if(! count($r)){ + return; + } // delivery loop require_once('include/salmon.php'); @@ -69,6 +76,12 @@ function remove_queue_item($id) { remove_queue_item($q_item['id']); continue; } + if(in_array($c[0]['notify'],$deadguys)) { + logger('queue: skipping known dead url: ' . $c[0]['notify']); + update_queue_time($q_item['id']); + continue; + } + $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($c[0]['uid']) ); @@ -88,11 +101,13 @@ function remove_queue_item($id) { logger('queue: dfrndelivery: item ' . $q_item['id'] . ' for ' . $contact['name']); $deliver_status = dfrn_deliver($owner,$contact,$data); - if($deliver_status == (-1)) + if($deliver_status == (-1)) { update_queue_time($q_item['id']); - else + $deadguys[] = $contact['notify']; + } + else { remove_queue_item($q_item['id']); - + } break; default: if($contact['notify']) { @@ -108,7 +123,11 @@ function remove_queue_item($id) { } } - killme(); + return; - // NOTREACHED +} +if (array_search(__file__,get_included_files())===0){ + queue_run($argv,$argc); + killme(); +}