|
12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- require 'uri'
- require 'net/http'
-
- namespace :sync_eudcoder_count do
- desc "every one day at 12pm sync educoder user_count, shixun_count, school_count, projects_count"
- task :sync_count => :environment do
-
- Rails.logger.info("###########_______Begin_to_sync_educoder_count________#####")
- home = Home&.first
- if home.present?
- begin
- api_host = "#{Redmine::Configuration['sync_educoder_count_url']}"
- api_key = "#{Redmine::Configuration['sync_educoder_key']}"
- url = "#{api_host}/api/edu_apis/edu_data_info.json"
- sync_json = {
- "private_token": api_key
- }
- uri = URI.parse(url)
- if api_host
- http = Net::HTTP.new(uri.hostname, uri.port)
-
- if api_host.include?("https://")
- http.use_ssl = true
- end
- response = http.send_request('GET', uri.path, sync_json.to_json, {'Content-Type' => 'application/json'})
- response_body = JSON.parse(response.body)
- if response_body["status"] == 0
- data_count = response_body["data"]
- home.users_count = home.users_count + data_count["user_count"].to_i
- home.projects_count = home.projects_count + data_count["project_count"].to_i
- home.practical_training_projects_count = home.practical_training_projects_count + data_count["shixun_count"].to_i
- home.scholls_count = home.scholls_count + data_count["school_count"].to_i
- home.save!
- end
- end
- rescue => e
- Rails.logger.info("#######__sync_educoder_count_failed_########{e}")
- end
- end
- Rails.logger.info("###########_______End_to_sync_educoder_count________#####")
- end
-
- end
|