From 0af08bc9674d8ecd98d7174ccdd150e1a286cb1b Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Mon, 21 Jun 2021 17:05:51 +0800 Subject: [PATCH] fix: projects load by project language slowly --- app/controllers/versions_controller.rb | 4 +--- app/models/project.rb | 3 +++ .../cache/platform_project_languages_count_service.rb | 4 ++-- ...0210621090005_add_project_language_index_to_projects.rb | 7 +++++++ 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 db/migrate/20210621090005_add_project_language_index_to_projects.rb diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb index 34ad6412..5eb9ee27 100644 --- a/app/controllers/versions_controller.rb +++ b/app/controllers/versions_controller.rb @@ -52,16 +52,14 @@ class VersionsController < ApplicationController (params[:done_ratio].present? && params[:done_ratio].to_s != "all") || (params[:issue_type].present? && params[:issue_type].to_s != "all") || (params[:issue_tag_id].present? && params[:issue_tag_id].to_s != "all") - puts has_filter_params @version_close_issues_size = has_filter_params ? version_issues.closed.size : @version.issues.issue_includes.closed.size @version_issues_size = has_filter_params ? version_issues.size : @version.issues.issue_includes.size - puts @version_close_issues_size - puts @version_issues_size if status_type.to_s == "1" #表示开启中的 version_issues = version_issues.where.not(status_id: 5) else version_issues = version_issues.where(status_id: 5) end + puts cookies.to_json @page = params[:page] || 1 @limit = params[:limit] || 15 diff --git a/app/models/project.rb b/app/models/project.rb index eb8a0bbf..251b40de 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -64,8 +64,11 @@ # index_projects_on_invite_code (invite_code) # index_projects_on_is_public (is_public) # index_projects_on_lft (lft) +# index_projects_on_license_id (license_id) # index_projects_on_name (name) # index_projects_on_platform (platform) +# index_projects_on_project_category_id (project_category_id) +# index_projects_on_project_language_id (project_language_id) # index_projects_on_project_type (project_type) # index_projects_on_recommend (recommend) # index_projects_on_rgt (rgt) diff --git a/app/services/cache/platform_project_languages_count_service.rb b/app/services/cache/platform_project_languages_count_service.rb index 2b4f0fae..0c6ffab1 100644 --- a/app/services/cache/platform_project_languages_count_service.rb +++ b/app/services/cache/platform_project_languages_count_service.rb @@ -46,11 +46,11 @@ class Cache::PlatformProjectLanguagesCountService < ApplicationService def reset_platform_project_language_count_by_key return if key.nil? - $redis_cache.hset(platform_project_language_count_key, key, Project.joins(:project_language).where(project_languages: {name: key}).count) + $redis_cache.hset(platform_project_language_count_key, key, ProjectLanguage.where(name: key).projects_count) end def reset_platform_project_language_count - Project.joins(:project_language).group("project_languages.name").count.each do |k, v| + ProjectLanguage.where.not(projects_count: 0).group("project_languages.name").sum(:projects_count).each do |k, v| $redis_cache.hset(platform_project_language_count_key, k, v) end end diff --git a/db/migrate/20210621090005_add_project_language_index_to_projects.rb b/db/migrate/20210621090005_add_project_language_index_to_projects.rb new file mode 100644 index 00000000..d0959168 --- /dev/null +++ b/db/migrate/20210621090005_add_project_language_index_to_projects.rb @@ -0,0 +1,7 @@ +class AddProjectLanguageIndexToProjects < ActiveRecord::Migration[5.2] + def change + add_index :projects, :project_category_id + add_index :projects, :project_language_id + add_index :projects, :license_id + end +end