|
- # 执行示例 bundle exec rake sync_version_issues:update_issues
- # 线上环境执行示例 RAILS_ENV=production bundle exec rake sync_version_issues:update_issues
-
- namespace :sync_version_issues do
- desc "update version issues_count"
-
- task update_issues: :environment do
- puts "____________sync start________________"
-
- Version.all.each do |q|
- puts "______########{q.id}"
- issues = Issue.select(:id, :fixed_version_id,:status_id).where(fixed_version_id: q.id)
- issues_count = issues.size
- closed_issues_count = issues.where(status_id: 5).size
- percent = issues_count == 0 ? 0.0 : (closed_issues_count.to_f / issues_count)
-
- begin
- q.update!(closed_issues_count: closed_issues_count, percent: percent)
- Version.update_counters q.id,issues_count: issues_count
- puts "____issues_count__########{q.issues_count}"
- rescue Exception => e
- puts "#####_______save_error______######{e}"
- end
- end
- puts "____________sync end________________"
- end
-
- end
|