From 5d4d87e957068b54e2b12abcea5c74bb4f3c012c Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 25 Jun 2009 19:58:14 -0700 Subject: Remove the digibug maintenance task. Expired imges will be removed when the print_proxy is run. --- modules/digibug/controllers/digibug.php | 17 ++++++++ modules/digibug/helpers/digibug_task.php | 68 -------------------------------- 2 files changed, 17 insertions(+), 68 deletions(-) delete mode 100644 modules/digibug/helpers/digibug_task.php (limited to 'modules') diff --git a/modules/digibug/controllers/digibug.php b/modules/digibug/controllers/digibug.php index 72b57242..25a9912a 100644 --- a/modules/digibug/controllers/digibug.php +++ b/modules/digibug/controllers/digibug.php @@ -76,6 +76,8 @@ class Digibug_Controller extends Controller { // We don't need to save the session for this request Session::abort_save(); + $this->_clean_expired(); + // Dump out the image header("Content-Type: $proxy->item->mime_type"); Kohana::close_buffers(false); @@ -92,4 +94,19 @@ class Digibug_Controller extends Controller { public function close_window() { print ""; } + + private function _clean_expired() { + $expired = ORM::factory("digibug_proxy") + ->where("request_date <= (CURDATE() - INTERVAL 10 DAY)") + ->find_all(); + + // Delete as many as we can in a second, so as to not slow up the request. + $start = microtime(true); + foreach ($expired as $proxy) { + if (microtime(true) - $start > 1.0) { + break; + } + $proxy->delete(); + } + } } \ No newline at end of file diff --git a/modules/digibug/helpers/digibug_task.php b/modules/digibug/helpers/digibug_task.php deleted file mode 100644 index 08cd6feb..00000000 --- a/modules/digibug/helpers/digibug_task.php +++ /dev/null @@ -1,68 +0,0 @@ -query( - "SELECT count(*) as print_requests - FROM {digibug_proxies} - WHERE `request_date` <= (CURDATE() - INTERVAL 10 DAY)")->current()->print_requests; - - return array(Task_Definition::factory() - ->callback("digibug_task::remove_expired") - ->name(t("Remove Digibug print requests")) - ->description($expired_request_count - ? t2("1 Digibug print request has expired", - "%count Digibug print requests have expired", - $expired_request_count) - : t("All print requests are current")) - ->severity($expired_request_count ? log::WARNING : log::SUCCESS)); - } - - static function remove_expired($task) { - $completed = $task->get("completed", 0); - $expired = ORM::factory("digibug_proxy") - ->where("request_date <= (CURDATE() - INTERVAL 10 DAY)") - ->find_all(); - $remaining = $expired->count(); - - $start = microtime(true); - foreach ($expired as $proxy) { - if (microtime(true) - $start > 1.5) { - break; - } - $proxy->delete(); - $completed++; - $remaining--; - } - - if ($completed + $remaining > 0) { - $task->percent_complete = (int)(100 * $completed / ($completed + $remaining)); - } else { - $task->percent_complete = 100; - } - - $task->set("completed", $completed); - if ($remaining == 0) { - $task->done = true; - $task->state = "success"; - } - } -} -- cgit v1.2.3