Exemple #1
0
 /**
  * @module org.rhaco.store.queue.Queue
  * 終了したものを削除する
  * @param string $type
  * @param timestamp $fin
  */
 public function clean($type, $fin, \org\rhaco\Paginator $paginator)
 {
     foreach (\org\rhaco\store\queue\module\Dao\QueueDao::find(Q::eq('type', $type), Q::neq('fin', null), Q::lte('fin', $fin), Q::order('id'), $paginator) as $obj) {
         $obj->delete();
     }
     \org\rhaco\store\queue\module\Dao\QueueDao::commit();
 }
Exemple #2
0
    \org\rhaco\store\queue\Queue::finish($model);
}
// 1..5追加
for ($i = 1; $i <= 5; $i++) {
    \org\rhaco\store\queue\Queue::insert('test', $i);
}
// 1..5取得、finishなし
$i = 0;
foreach (\org\rhaco\store\queue\Queue::gets(5, 'test') as $model) {
    $i++;
    eq($i, $model->data());
    // ロックだけする
}
// ロックのリセット
eq(5, $i);
\org\rhaco\store\queue\Queue::reset('test', -86400);
// 未来を指定してリセット
// 解除された5件が取得できる
$i = 0;
foreach (\org\rhaco\store\queue\Queue::gets(5, 'test') as $model) {
    $i++;
    eq($i, $model->data());
    \org\rhaco\store\queue\Queue::finish($model);
}
eq(5, $i);
eq(10, \org\rhaco\store\queue\module\Dao\QueueDao::find_count());
\org\rhaco\store\queue\Queue::clean('test', time(), 3);
eq(7, \org\rhaco\store\queue\module\Dao\QueueDao::find_count());
\org\rhaco\store\queue\Queue::clean('test');
eq(0, \org\rhaco\store\queue\module\Dao\QueueDao::find_count());