|
@@ -84,20 +84,57 @@ class PeopleController < ApplicationController
|
|
|
end
|
|
|
}
|
|
|
|
|
|
+ require 'thread'
|
|
|
|
|
|
+ require 'atomic'
|
|
|
+ process_count = Atomic.new(0)
|
|
|
+
|
|
|
+ mutex = Mutex.new
|
|
|
employees.each do |key, curEmployees|
|
|
|
- next if curEmployees.size != 1
|
|
|
- employee = curEmployees[0]
|
|
|
+ process_count.update {|v| v += 1}
|
|
|
+
|
|
|
+ Thread.new do
|
|
|
+ if curEmployees.size != 1
|
|
|
+ process_count.update {|v| v -= 1}
|
|
|
+ next
|
|
|
+ end
|
|
|
+ employee = curEmployees[0]
|
|
|
|
|
|
- ofz_key = key
|
|
|
- ofz_key = "#{employee["lastname"]}#{employee["firstname"]}".delete(' ').delete('?').gsub('Ё', 'Е').gsub('ё', 'е').strip if ofz_links[ofz_key].nil?
|
|
|
- next if ofz_links[ofz_key].nil?
|
|
|
- next if ofz_links[ofz_key].size != 1
|
|
|
|
|
|
- #puts "#{key}: #{employees[key]}: #{employees}"
|
|
|
- employees[key][0]["UserID"] = ofz_links[ofz_key][0]
|
|
|
+ ofz_key = key
|
|
|
+ ofz_key = `/var/www/fixok.ut.mephi.ru/root/3rdparty/approximate_regex/approximate_regex /tmp/cps_keys.csv '#{ofz_key}' | tr -d "\n"` if ofz_links[ofz_key].nil?
|
|
|
+ ofz_key = "#{employee["lastname"]}#{employee["firstname"]}".delete(' ').delete('?').gsub('Ё', 'Е').gsub('ё', 'е').strip if ofz_key == ""
|
|
|
+ if ofz_links[ofz_key].nil? or ofz_links[ofz_key].size != 1
|
|
|
+ process_count.update {|v| v -= 1}
|
|
|
+ next
|
|
|
+ end
|
|
|
+
|
|
|
+ #puts "#{key}: #{employees[key]}: #{employees}"
|
|
|
+ mutex.lock
|
|
|
+ employees[key][0]["UserID"] = ofz_links[ofz_key][0]
|
|
|
+ mutex.unlock
|
|
|
+
|
|
|
+ process_count.update {|v| v -= 1}
|
|
|
+ end
|
|
|
+
|
|
|
+ begin
|
|
|
+ _process_count = process_count.value
|
|
|
+
|
|
|
+ break unless _process_count > 24
|
|
|
+
|
|
|
+ sleep 0.1
|
|
|
+ end while _process_count > 24
|
|
|
end
|
|
|
|
|
|
+ begin
|
|
|
+ _process_count = process_count.value
|
|
|
+
|
|
|
+ break unless _process_count > 0
|
|
|
+
|
|
|
+ puts "F: process_count == #{_process_count}"
|
|
|
+ sleep 0.11
|
|
|
+ end while _process_count > 0
|
|
|
+
|
|
|
employees.each do |key, curEmployees|
|
|
|
curEmployees.each do |employee|
|
|
|
#puts "#{employee[0]}"
|