From 1daad01f362d72e6ed89f415546220016c32404a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 9 Jul 2009 11:40:01 -0400 Subject: [PATCH] slightly better timing --- lib/stompqueuemanager.php | 7 +++++-- lib/xmppqueuehandler.php | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php index 4cefba1132..4d89806f8d 100644 --- a/lib/stompqueuemanager.php +++ b/lib/stompqueuemanager.php @@ -117,9 +117,12 @@ class StompQueueManager } unset($frame); - } - $handler->idle(0); + $handler->idle(QUEUE_HANDLER_HIT_IDLE); + + } else { + $handler->idle(QUEUE_HANDLER_MISS_IDLE); + } } $this->con->unsubscribe($this->_queueName($queue)); diff --git a/lib/xmppqueuehandler.php b/lib/xmppqueuehandler.php index 9b1a6989e2..cbcfe5e1c6 100644 --- a/lib/xmppqueuehandler.php +++ b/lib/xmppqueuehandler.php @@ -21,6 +21,8 @@ if (!defined('LACONICA')) { exit(1); } require_once(INSTALLDIR.'/lib/queuehandler.php'); +define('PING_INTERVAL', 120); + /** * Common superclass for all XMPP-using queue handlers. They all need to * service their message queues on idle, and forward any incoming messages @@ -31,6 +33,7 @@ require_once(INSTALLDIR.'/lib/queuehandler.php'); class XmppQueueHandler extends QueueHandler { var $pingid = 0; + var $lastping = null; function start() { @@ -64,7 +67,11 @@ class XmppQueueHandler extends QueueHandler if ($this->conn) { $this->log(LOG_DEBUG, "Servicing the XMPP queue."); $this->conn->processTime($timeout); - $this->sendPing(); + $now = time(); + if (empty($this->lastping) || $now - $this->lastping > PING_INTERVAL) { + $this->sendPing(); + $this->lastping = $now; + } } } catch (XMPPHP_Exception $e) { $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage());