From e95eb8bd2372986076c15a925ed3e5f2a420565a Mon Sep 17 00:00:00 2001 From: xxq250 Date: Sat, 25 Mar 2023 10:21:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8F=90=E4=BA=A4=E6=95=B0?= =?UTF-8?q?=E5=88=B0db?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/total_commit_to_db.rake | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 lib/tasks/total_commit_to_db.rake diff --git a/lib/tasks/total_commit_to_db.rake b/lib/tasks/total_commit_to_db.rake new file mode 100644 index 000000000..cdb29e108 --- /dev/null +++ b/lib/tasks/total_commit_to_db.rake @@ -0,0 +1,65 @@ +namespace :total_commit_to_db do + desc "total_commit_to_db" + task done: :environment do + project_name = ENV['name'] || "mindspore" + puts "project_id=================#{project_name}" + projects = Project.where(identifier: ['MindSpore-first-experience', ' MindSpore-install', 'MindSpore-Application-practice', 'MindSpore-Model-Development', 'MindSpore-Data-preprocessing', 'Mindspore-Data-storage-use', 'MindSpore-Data-storage-kunpeng', 'MindSpore-LeNet-jzx3', 'MindSpore-competition'] ) + + projects.each_with_index do |project, index| + result = Gitea::Repository::Commits::ListService.call(project.owner.login,project.identifier,sha: "", page: 1, limit: 5, token: project.owner.gitea_token) + next if result.blank? || result[:total_count].blank? + total_count = result[:total_count] + # next if total_count > 2000 + puts "#{index} total_count==========#{total_count}" + if total_count > 200 + total_page = (total_count / 200) + 1 + total_page.times do |i| + add_commit_to_index(project, i + 1) + end + else + # add_commit_to_index(project, 1) + data = "" + result[:body].each do |commit| + commit_date = Time.parse(commit['commit']['author']['date']) + commit_date_str = commit_date.strftime("%Y-%m-%d") + data += "(\"#{commit_date_str}\",1)," + end + data = data[0,data.length-1] + sql_connection = ActiveRecord::Base.connection + sql_connection.begin_db_transaction + sql = "insert into mindspore_commit(week_date,num) values #{data}" + sql_connection.execute(sql) + end + puts "#{index} date_count_hash===========#{@date_count_hash.to_json}" + + end + puts "@date_count_hash===========#{@date_count_hash.to_json}" + + + + + # Time.now + # Wed Mar 15 14:12:09 2023 +0800 + # Time.now.strftime("%a %b %d %H:%M:%S %Y") + # Time.now.strftime("%a %b %d %H:%M:%S %Y +0800") + Time.parse("2023-03-15 14:12:09").strftime("%a %b %d %H:%M:%S %Y +0800") + + end + + def add_commit_to_index(project, page) + # Gitea::Repository::Commits::ListSliceService.call(project.owner.login,project.identifier,sha: "", page: 1, limit: 1000, token: "a9244ecac647dd33fee3b480c5898baab1d3fe7d") + result = Gitea::Repository::Commits::ListService.call(project.owner.login,project.identifier,sha: "", page: page, limit: 200, token: project.owner.gitea_token) + data = "" + result[:body].each do |commit| + commit_date = Time.parse(commit['commit']['author']['date']) + commit_date_str = commit_date.strftime("%Y-%m-%d") + data += "(\"#{commit_date_str}\",1)," + end + data = data[0,data.length-1] + sql_connection = ActiveRecord::Base.connection + sql_connection.begin_db_transaction + sql = "insert into mindspore_commit(week_date,num) values #{data}" + sql_connection.execute(sql) + end + +end \ No newline at end of file