【问题标题】:Best practice for updating user 'rank' using a cron job使用 cron 作业更新用户“排名”的最佳实践
【发布时间】:2017-02-26 22:29:34
【问题描述】:

在我的网站中,我的用户可以创建帖子、进行描述、上传个人资料图片、提供电子邮件地址等

我想给用户一个“分数”或“排名”,具体取决于他们更新帐户的程度。例如,提供个人资料图片将 +10 分,长描述将 +5 分,发帖将 +2 分等

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

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

我想知道对此的最佳做法是什么,以及我应该在哪里存储用户的“分数”。

【问题讨论】:

  • 广泛.. 现场直播,无需使用 cron 作业

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


【解决方案1】:

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

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

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

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

这段代码需要放在AppServiceProviders的启动方法中。

在你的情况下,这将是最佳实践,你以我的诚实观点,不用担心你可以计算分数,每次你在网上展示时,计算不会那么复杂。

【讨论】:

  • @danielpahor 这个有帮助吗?
猜你喜欢
  • 2018-10-04
  • 2010-09-22
  • 1970-01-01
  • 2011-04-21
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
相关资源
最近更新 更多