diff --git a/app/services/cache/v2/project_common_service.rb b/app/services/cache/v2/project_common_service.rb index 97023ae29..0d167c2a7 100644 --- a/app/services/cache/v2/project_common_service.rb +++ b/app/services/cache/v2/project_common_service.rb @@ -133,6 +133,8 @@ class Cache::V2::ProjectCommonService < ApplicationService end if @watchers.present? $redis_cache.hincrby(project_common_key, watchers_key, @watchers) + Cache::V2::ProjectRankService.call(@project_id, {watchers: @watchers}) + Cache::V2::ProjectDateRankService.call(@project_id, Date.today, {watchers: @watchers}) end if @praises.present? $redis_cache.hincrby(project_common_key, praises_key, @praises) diff --git a/app/services/cache/v2/project_date_rank_service.rb b/app/services/cache/v2/project_date_rank_service.rb index 08aae6f77..9d8ffca90 100644 --- a/app/services/cache/v2/project_date_rank_service.rb +++ b/app/services/cache/v2/project_date_rank_service.rb @@ -7,6 +7,7 @@ class Cache::V2::ProjectDateRankService < ApplicationService @project_id = project_id @rank_date = rank_date @visits = params[:visits] + @watchers = params[:watchers] @praises = params[:praises] @forks = params[:forks] @issues = params[:issues] @@ -35,6 +36,9 @@ class Cache::V2::ProjectDateRankService < ApplicationService if @visits.present? $redis_cache.zincrby(project_rank_key, @visits.to_i * 1, @project_id) end + if @watchers.present? + $redis_cache.zincrby(project_rank_key, @watchers.to_i * 5, @project_id) + end if @praises.present? $redis_cache.zincrby(project_rank_key, @praises.to_i * 5, @project_id) end @@ -42,13 +46,13 @@ class Cache::V2::ProjectDateRankService < ApplicationService $redis_cache.zincrby(project_rank_key, @forks.to_i * 10, @project_id) end if @issues.present? - $redis_cache.zincrby(project_rank_key, @issues.to_i * 10, @project_id) + $redis_cache.zincrby(project_rank_key, @issues.to_i * 5, @project_id) end if @pullrequests.present? $redis_cache.zincrby(project_rank_key, @pullrequests.to_i * 10, @project_id) end if @commits.present? - $redis_cache.zincrby(project_rank_key, @commits.to_i * 1, @project_id) + $redis_cache.zincrby(project_rank_key, @commits.to_i * 5, @project_id) end $redis_cache.zscore(project_rank_key, @project_id) diff --git a/app/services/cache/v2/project_rank_service.rb b/app/services/cache/v2/project_rank_service.rb index 3265c0a6c..b88c416c4 100644 --- a/app/services/cache/v2/project_rank_service.rb +++ b/app/services/cache/v2/project_rank_service.rb @@ -5,6 +5,7 @@ class Cache::V2::ProjectRankService < ApplicationService def initialize(project_id, params={}) @project_id = project_id @visits = params[:visits] + @watchers = params[:watchers] @praises = params[:praises] @forks = params[:forks] @issues = params[:issues] @@ -51,6 +52,9 @@ class Cache::V2::ProjectRankService < ApplicationService if @visits.present? $redis_cache.zincrby(project_rank_key, @visits.to_i * 1, @project_id) end + if @watchers.present? + $redis_cache.zincrby(project_rank_key, @watchers.to_i * 5, @project_id) + end if @praises.present? $redis_cache.zincrby(project_rank_key, @praises.to_i * 5, @project_id) end @@ -58,13 +62,13 @@ class Cache::V2::ProjectRankService < ApplicationService $redis_cache.zincrby(project_rank_key, @forks.to_i * 10, @project_id) end if @issues.present? - $redis_cache.zincrby(project_rank_key, @issues.to_i * 10, @project_id) + $redis_cache.zincrby(project_rank_key, @issues.to_i * 5, @project_id) end if @pullrequests.present? $redis_cache.zincrby(project_rank_key, @pullrequests.to_i * 10, @project_id) end if @commits.present? - $redis_cache.zincrby(project_rank_key, @commits.to_i * 1, @project_id) + $redis_cache.zincrby(project_rank_key, @commits.to_i * 5, @project_id) end reset_user_project_rank end @@ -74,7 +78,7 @@ class Cache::V2::ProjectRankService < ApplicationService def reset_project_rank load_project_common - score = @project_common["visits"].to_i * 1 + @project_common["praises"].to_i * 5 + @project_common["forks"].to_i * 10 + @project_common["issues"].to_i * 10 + @project_common["pullrequests"].to_i * 10 + @project_common["commits"].to_i * 1 + score = @project_common["visits"].to_i * 1 + @project_common["watchers"].to_i * 5 + @project_common["praises"].to_i * 5 + @project_common["forks"].to_i * 10 + @project_common["issues"].to_i * 5 + @project_common["pullrequests"].to_i * 10 + @project_common["commits"].to_i * 5 $redis_cache.zadd(project_rank_key, score, @project_id) reset_user_project_rank