]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
don't worry about old claims
authorEvan Prodromou <evan@prodromou.name>
Fri, 4 Jul 2008 06:02:13 +0000 (02:02 -0400)
committerEvan Prodromou <evan@prodromou.name>
Fri, 4 Jul 2008 06:02:13 +0000 (02:02 -0400)
darcs-hash:20080704060213-84dde-228a06885e49bc81bb8f0f681ff3dc788c97213c.gz

queuedaemon.php

index 97de21490ea49764a783855f687111d8165aa5ff..91cfff0bfa52bcd5f6b883428fd1f65da7923b89 100755 (executable)
@@ -41,8 +41,7 @@ function qd_top_item() {
        
        $qi = new Queue_item();
        $qi->orderBy('created');
-       $qi->whereAdd('claimed is NULL', 'OR');
-       $qi->whereAdd('now() - claimed > '.CLAIM_TIMEOUT, 'OR');
+       $qi->whereAdd('claimed is NULL');
        
        $qi->limit(1);
 
@@ -52,7 +51,7 @@ function qd_top_item() {
                # XXX: potential race condition
                # can we force it to only update if claimed is still NULL
                # (or old)?
-               qd_log(LOG_INFO, 'claiming queue item = ' . $queue->notice_id);
+               qd_log(LOG_INFO, 'claiming queue item = ' . $qi->notice_id);
                $orig = clone($qi);
                $qi->claimed = DB_DataObject_Cast::dateTime();
                $result = $qi->update($orig);
@@ -67,6 +66,19 @@ function qd_top_item() {
        return NULL;
 }
 
+function qd_clear_old_claims() {
+       $qi = new Queue_item();
+       $qi->orderBy('created');
+       $qi->whereAdd('now() - claimed > '.CLAIM_TIMEOUT);
+       if ($qi->find()) {
+               while ($qi->fetch()) {
+                       $orig = clone($qi);
+                       $qi->claimed = NULL;
+                       $qi->update($orig);
+               }
+       }
+}
+
 function qd_is_remote($notice) {
        $user = User::staticGet($notice->profile_id);
        return !$user;
@@ -93,6 +105,7 @@ do {
                $qi->delete();
                $qi = NULL;
        } else {
+               # qd_clear_old_claims();
                # In busy times, sleep less
                $sleeptime = 30000000/($in_a_row+1);
                qd_log(LOG_INFO, 'sleeping ' . $sleeptime . ' microseconds');