mirror of
https://github.com/internetee/registry.git
synced 2025-08-04 00:42:04 +02:00
Merge branch '111297422-whois_blocked_domains' into staging
This commit is contained in:
commit
2f4d89995b
5 changed files with 36 additions and 7 deletions
16
app/jobs/update_whois_record_job.rb
Normal file
16
app/jobs/update_whois_record_job.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
class UpdateWhoisRecordJob < Que::Job
|
||||
|
||||
def run(ids, type)
|
||||
klass = case type
|
||||
when 'reserved'then ReservedDomain
|
||||
when 'blocked' then BlockedDomain
|
||||
else Domain
|
||||
end
|
||||
|
||||
ids.each do |id|
|
||||
record = klass.find_by(id: id)
|
||||
next unless record
|
||||
record.update_whois_record
|
||||
end
|
||||
end
|
||||
end
|
|
@ -24,6 +24,8 @@ class BlockedDomain < ActiveRecord::Base
|
|||
update_whois_server
|
||||
end
|
||||
|
||||
alias_method :update_whois_record, :generate_data
|
||||
|
||||
def update_whois_server
|
||||
wr = Whois::Record.find_or_initialize_by(name: name)
|
||||
wr.body = @body
|
||||
|
|
|
@ -35,6 +35,8 @@ class ReservedDomain < ActiveRecord::Base
|
|||
update_whois_server
|
||||
end
|
||||
|
||||
alias_method :update_whois_record, :generate_data
|
||||
|
||||
def update_whois_server
|
||||
wr = Whois::Record.find_or_initialize_by(name: name)
|
||||
wr.body = @body
|
||||
|
|
|
@ -106,7 +106,7 @@ class WhoisRecord < ActiveRecord::Base
|
|||
self.json = generated_json
|
||||
self.body = generated_body
|
||||
self.name = json['name']
|
||||
self.registrar_id = domain.registrar_id # for faster registrar updates
|
||||
self.registrar_id = domain.registrar_id if domain # for faster registrar updates
|
||||
end
|
||||
|
||||
def update_whois_server
|
||||
|
|
|
@ -3,15 +3,24 @@ namespace :whois do
|
|||
task regenerate: :environment do
|
||||
start = Time.zone.now.to_f
|
||||
|
||||
@i = 0
|
||||
print "-----> Regenerate Registry whois_records table and sync with whois server..."
|
||||
ActiveRecord::Base.uncached do
|
||||
puts "\n#{@i}"
|
||||
Domain.included.find_in_batches(batch_size: 10000) do |batch|
|
||||
batch.map(&:update_whois_record)
|
||||
puts(@i += 10000)
|
||||
GC.start
|
||||
|
||||
print "\n-----> Update domains whois_records"
|
||||
Domain.find_in_batches.each do |group|
|
||||
UpdateWhoisRecordJob.enqueue group.map(&:id), 'domain'
|
||||
end
|
||||
|
||||
print "\n-----> Update blocked domains whois_records"
|
||||
BlockedDomain.find_in_batches.each do |group|
|
||||
UpdateWhoisRecordJob.enqueue group.map(&:id), 'blocked'
|
||||
end
|
||||
|
||||
print "\n-----> Update reserved domains whois_records"
|
||||
ReservedDomain.find_in_batches.each do |group|
|
||||
UpdateWhoisRecordJob.enqueue group.map(&:id), 'reserved'
|
||||
end
|
||||
|
||||
end
|
||||
puts "\n-----> all done in #{(Time.zone.now.to_f - start).round(2)} seconds"
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue