使用php resque从它停止的地方开始工作者工作?

时间:2014-07-31 21:01:07

标签: php batch-file resque

我在php作业中批处理查询进行处理。我很好奇是否有办法找到工作所在的地方。

psdeuo代码

function perform(){
    $batch_limit = 0;
    while($batch_limit<20){
       results = getstuff($batch_limit);
       dostuff(results);
       $batch_limit += 2;
}    

function getstuff($batch_limit){
   $results = $con->query("SELECT * FROM table LIMIT $batch_limit, 2);
   return $results;
}

因此,例如,如果任意dostuff()函数在

的结果查询上中断

'Select * FROM table LIMIT 4, 2'

无论如何我可以拿起并执行

'Select * From table LIMIT 6, 2'

1 个答案:

答案 0 :(得分:1)

将当前限制写入简单的键/值表,并在perform()的开头选择它。

我总是有一张表来提供这类信息,因为它经常派上用场。 只需创建一个包含两列“key”和“value”的表。键为VARCHAR,值为整数。

然后在每次调用getstuff()

的开头插入批量限制
function getstuff($batch_limit){
    $con->query("UPDATE keyvaluetable SET value=$batch_limit WHERE key='batch_limit'");
    $results = $con->query("SELECT * FROM table LIMIT $batch_limit, 2");
    return $results;
}

然后在执行()

的开头选择它
function perform(){
    $result = $conn->query("Get value from before query here");
    if($result){
       $batch_limit = $result;
    }else{
       $batch_limit = 0;
    }
    while($batch_limit<20){
       results = getstuff($batch_limit);
       dostuff(results);
       $batch_limit += 2;
}