按照我对代码的理解Reputation的计算主要在crond model中进行,而根据下面的代码:
public function minute($user_id)
{
@unlink(TEMP_PATH . 'plugins_table.php');
@unlink(TEMP_PATH . 'plugins_model.php');
//$this->model('reputation')->calculate_by_uid($user_id);
if ($this->model('reputation')->calculate(AWS_APP::cache()->get('reputation_calculate_start'), 100))
{
AWS_APP::cache()->set('reputation_calculate_start', (intval(AWS_APP::cache()->get('reputation_calculate_start')) + 100), 604800);
}
else
{
AWS_APP::cache()->set('reputation_calculate_start', 0, 604800);
}
$this->model('online')->online_active($user_id);
$this->model('email')->send_mail_queue(120);
}
我的理解是,一旦用户量上来,那么就每分钟都在计算用户的Reputation,眼下还没测试数据,但应该会拖慢整体性能。如果能够只计算有变更的用户的Reputation,效果会好很多,不知道官方是怎么考虑这个问题的?
阅读全文
收起全文