SAE的taskqueue中的一个小细节

还是在试用taskqueue的时候发现的一个小细节

一个taskqueue完整的使用过程是这样子的

$queue = new SaeTaskQueue('some_queue');
foreach ($task_urls as $key=>$task_url)
{
    $queue->addTask($task_url);
}
$ret = $queue->push();
var_dump($ret);

基本上就是上面这么个过程, 一般情况下, 我们当然默认这个$ret是true. 但是有的时候很奇怪, 发现它打印出来是false.

定位了一下问题, 发现是这样子的. 我的循环本来也并不是预期每次都会执行的, 会根据当前数据库的状态去决定循环多少次. 有的时候,循环次数为0, 也就是说, 没有经过$queue->addTask()这一个步骤. 于是push的时候就返回了false.

但是这不成啊, 总得有方法去判断队列是否正常工作啊.

于是看了下API, 有一个curLength()的接口. 用来判断当前的队列长度. 以为这个可以用来做判断. 结果还是不行. 原因是, curLength只有在push之后才会计算出非0的数值, 表示push了多少条. 因此也不符合我的要求.

想了一下, 可能只有在addTask前面加一个flag变量, 如果flag没有变化, 那么干脆就别执行push这个函数好了.

唔, 总之觉得这个细节还是怪怪的~


本文链接:https://www.poisonbian.com/post/129.html 转载需授权!

分享到:
原文链接:,转发请注明来源!
「SAE的taskqueue中的一个小细节」评论列表

发表评论