don't worry about old claims

darcs-hash:20080704060213-84dde-228a06885e49bc81bb8f0f681ff3dc788c97213c.gz
This commit is contained in:
Evan Prodromou 2008-07-04 02:02:13 -04:00
parent 94a7924767
commit 3eb1313587

View File

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