forked from GNUsocial/gnu-social
don't worry about old claims
darcs-hash:20080704060213-84dde-228a06885e49bc81bb8f0f681ff3dc788c97213c.gz
This commit is contained in:
parent
94a7924767
commit
3eb1313587
@ -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');
|
||||
|
Loading…
Reference in New Issue
Block a user