X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fqueue.php;h=1525ca3abf561cd363c9cad5d9d3158b49f75b32;hb=62de6be495214e4b12a92a1877711768f4a1d992;hp=3f6686ec6e1c8f09c2220ca41c78be8695768f43;hpb=32e8f3468d17f9f84b308aa903f7efa1fa22441f;p=friendica.git diff --git a/include/queue.php b/include/queue.php index 3f6686ec6e..1525ca3abf 100644 --- a/include/queue.php +++ b/include/queue.php @@ -1,6 +1,7 @@ UTC_TIMESTAMP() - INTERVAL 12 HOUR && `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( `last` < UTC_TIMESTAMP() - INTERVAL 1 HOUR ))"); + $r = q("SELECT `id` FROM `queue` WHERE ((`created` > UTC_TIMESTAMP() - INTERVAL 12 HOUR && `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE) OR (`last` < UTC_TIMESTAMP() - INTERVAL 1 HOUR)) ORDER BY `cid`, `created`"); } if(! $r){ return; @@ -112,7 +119,7 @@ function queue_run(&$argv, &$argc){ // so check again if this entry still needs processing if($queue_id) { - $qi = q("select * from queue where `id` = %d limit 1", + $qi = q("SELECT * FROM `queue` WHERE `id` = %d LIMIT 1", intval($queue_id) ); } @@ -138,8 +145,18 @@ function queue_run(&$argv, &$argc){ continue; } - if (!poco_reachable($c[0]['url'])) { - logger('queue: skipping probably dead url: ' . $c[0]['url']); + $server = poco_detect_server($c[0]['url']); + + if (($server != "") AND !in_array($server, $serverlist)) { + logger("Check server ".$server." (".$c[0]["network"].")"); + if (!poco_check_server($server, $c[0]["network"], true)) + $deadservers[] = $server; + + $serverlist[] = $server; + } + + if (($server != "") AND in_array($server, $deadservers)) { + logger('queue: skipping known dead server: '.$server); update_queue_time($q_item['id']); continue; } @@ -162,37 +179,39 @@ function queue_run(&$argv, &$argc){ switch($contact['network']) { case NETWORK_DFRN: - logger('queue: dfrndelivery: item ' . $q_item['id'] . ' for ' . $contact['name']); - $deliver_status = dfrn_deliver($owner,$contact,$data); + logger('queue: dfrndelivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>'); + $deliver_status = dfrn::deliver($owner,$contact,$data); if($deliver_status == (-1)) { update_queue_time($q_item['id']); $deadguys[] = $contact['notify']; - } - else { + } else remove_queue_item($q_item['id']); - } + break; case NETWORK_OSTATUS: if($contact['notify']) { - logger('queue: slapdelivery: item ' . $q_item['id'] . ' for ' . $contact['name']); + logger('queue: slapdelivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>'); $deliver_status = slapper($owner,$contact['notify'],$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; case NETWORK_DIASPORA: if($contact['notify']) { - logger('queue: diaspora_delivery: item ' . $q_item['id'] . ' for ' . $contact['name']); + logger('queue: diaspora_delivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>'); $deliver_status = diaspora_transmit($owner,$contact,$data,$public,true); - 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; @@ -208,6 +227,7 @@ function queue_run(&$argv, &$argc){ break; } + logger('Deliver status '.$deliver_status.' for item '.$q_item['id'].' to '.$contact['name'].' <'.$contact['url'].'>'); } return;