更新用户排名的最佳做法'使用cron作业

时间:2017-02-26 22:29:35

标签: php laravel laravel-5 cron laravel-5.3

在我的网站中,我有用户可以创建帖子,制作说明,上传个人资料照片,提供电子邮件地址等

我想给用户一个分数'或者'排名'取决于他们更新帐户的程度。例如,提供个人资料图片将是+10分,长期描述将是+5分,使得帖子将是+2分等等。

我将有一个用户模型方法,在执行时更新其分数并将其添加到users表中的列。

有人建议我使用cron作业,每天更新一次,而不是每次用户更改帐户时都更新。

我想知道最佳做法是什么,以及我应该在哪里存储用户的得分#39;

1 个答案:

答案 0 :(得分:0)

肯定会使用已经由Laravel预定义的模型事件。

https://laravel.com/docs/5.4/eloquent#events

所以类似于此,每次保存用户时,我们都会更新分数。

User::saved(function($user){
    $user->calculateScore();
    $user->save();
});

此代码需要放在AppServiceProviders引导方法中。

在你的情况下,这是最好的做法,你在我的诚实意见中,不用担心你可以计算得分,每次你在网上显示,复杂的计算不能。