3 * Table Definition for queue_item
5 require_once 'DB/DataObject.php';
7 class Queue_item extends DB_DataObject
10 /* the code below is auto generated do not remove the above tag */
12 public $__table = 'queue_item'; // table name
13 public $notice_id; // int(4) primary_key not_null
14 public $transport; // varchar(8) primary_key not_null
15 public $created; // datetime() not_null
16 public $claimed; // datetime()
19 function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Queue_item',$k,$v); }
21 /* the code above is auto generated do not remove the tag below */
24 function sequenceKey() { return array(false, false); }
26 static function top($transport) {
28 $qi = new Queue_item();
29 $qi->transport = $transport;
30 $qi->orderBy('created');
31 $qi->whereAdd('claimed is NULL');
35 $cnt = $qi->find(TRUE);
38 # XXX: potential race condition
39 # can we force it to only update if claimed is still NULL
41 common_log(LOG_INFO, 'claiming queue item = ' . $qi->notice_id . ' for transport ' . $transport);
43 $qi->claimed = common_sql_now();
44 $result = $qi->update($orig);
46 common_log(LOG_INFO, 'claim succeeded.');
49 common_log(LOG_INFO, 'claim failed.');