summaryrefslogtreecommitdiff
path: root/modules/digibug
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-06-25 19:58:14 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-06-25 19:58:14 -0700
commit5d4d87e957068b54e2b12abcea5c74bb4f3c012c (patch)
treea8592aa404505e97ad66e21073066e2f22de3336 /modules/digibug
parent93e4f14c855d3fe4c4e9cc5c7d6a58fb2e25fe99 (diff)
Remove the digibug maintenance task. Expired imges will be removed when the
print_proxy is run.
Diffstat (limited to 'modules/digibug')
-rw-r--r--modules/digibug/controllers/digibug.php17
-rw-r--r--modules/digibug/helpers/digibug_task.php68
2 files changed, 17 insertions, 68 deletions
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 "<script type=\"text/javascript\">window.close();</script>";
}
+
+ 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 @@
-<?php defined("SYSPATH") or die("No direct script access.");
-/**
- * Gallery - a web based photo album viewer and editor
- * Copyright (C) 2000-2009 Bharat Mediratta
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
-class digibug_task_Core {
- static function available_tasks() {
- // Delete extra exif_records
- $expired_request_count = Database::instance()->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";
- }
- }
-}