From: Jan Schneider Date: Wed, 22 Dec 2010 14:56:56 +0000 (+0100) Subject: Fix garbage collection. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=363c8d8bf5fe81b12e21bf49937ddce13e77b47a;p=horde.git Fix garbage collection. --- diff --git a/framework/Alarm/lib/Horde/Alarm.php b/framework/Alarm/lib/Horde/Alarm.php index 6bc156e28..2fec089c0 100644 --- a/framework/Alarm/lib/Horde/Alarm.php +++ b/framework/Alarm/lib/Horde/Alarm.php @@ -553,12 +553,15 @@ abstract class Horde_Alarm /** * Garbage collects old alarms in the backend. * + * @param boolean $force Force garbace collection? If false, GC happens + * with a 1% chance. + * * @throws Horde_Alarm_Exception */ - public function gc() + public function gc($force = false) { /* A 1% chance we will run garbage collection during a call. */ - if (rand(0, 99) == 0) { + if ($force || rand(0, 99) == 0) { $this->_gc(); } } diff --git a/framework/Alarm/lib/Horde/Alarm/Sql.php b/framework/Alarm/lib/Horde/Alarm/Sql.php index b151363cd..e5e9bd51b 100644 --- a/framework/Alarm/lib/Horde/Alarm/Sql.php +++ b/framework/Alarm/lib/Horde/Alarm/Sql.php @@ -370,7 +370,7 @@ class Horde_Alarm_Sql extends Horde_Alarm { $query = sprintf('DELETE FROM %s WHERE alarm_end IS NOT NULL AND alarm_end < ?', $this->_params['table']); $end = new Horde_Date(time()); - $this->_db->delete($query, (string)$end->setTimezone('UTC')); + $this->_db->delete($query, array((string)$end->setTimezone('UTC'))); } /** diff --git a/framework/Alarm/test/Horde/Alarm/SqlTest.php b/framework/Alarm/test/Horde/Alarm/SqlTest.php index e05bca439..eb6e0778c 100644 --- a/framework/Alarm/test/Horde/Alarm/SqlTest.php +++ b/framework/Alarm/test/Horde/Alarm/SqlTest.php @@ -59,7 +59,7 @@ class Horde_Alarm_SqlTest extends PHPUnit_Framework_TestCase { self::$alarm = new Horde_Alarm_Sql(array('db' => self::$db, 'charset' => 'UTF-8')); self::$alarm->initialize(); - self::$alarm->gc(); + self::$alarm->gc(true); } /**