67 lines
2.5 KiB
Ruby
67 lines
2.5 KiB
Ruby
require 'rufus-scheduler'
|
|
|
|
config = Rails.application.config_for(:configuration)
|
|
nacos_config = config['nacos']
|
|
Rails.logger.info "nacos_config==#{nacos_config}"
|
|
return if nacos_config.blank?
|
|
|
|
local_ip = "127.0.0.1"
|
|
Socket.ip_address_list.each do |addrinfo|
|
|
if addrinfo.ip_address != "127.0.0.1" && addrinfo.ipv4_private?
|
|
Rails.logger.info addrinfo.ip_address
|
|
local_ip = addrinfo.ip_address
|
|
end
|
|
end
|
|
|
|
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080" }
|
|
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080", "username" => "#{nacos_config["username"]}", "password" => "#{nacos_config["password"]}" } if nacos_config["username"].present? && nacos_config["password"].present?
|
|
url = "#{nacos_config["url"]}/nacos/v1/ns/instance"
|
|
uri = URI.parse(url)
|
|
http = Net::HTTP.new uri.host, uri.port
|
|
http.open_timeout = 60
|
|
http.read_timeout = 60
|
|
if uri.scheme == 'https'
|
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
|
http.use_ssl = true
|
|
end
|
|
request = Net::HTTP::Post.new(uri)
|
|
request.set_form_data(params) if params.present?
|
|
response = http.start { |http| http.request(request) }
|
|
Rails.logger.info "register nacos response.body==#{response.body}"
|
|
|
|
scheduler = Rufus::Scheduler.new
|
|
|
|
scheduler.every '5s' do
|
|
puts Time.new
|
|
puts 'Hello... Word'
|
|
Rails.logger.info 'Hello... Word'
|
|
local_ip = "127.0.0.1"
|
|
Socket.ip_address_list.each do |addrinfo|
|
|
if addrinfo.ip_address != "127.0.0.1" && addrinfo.ipv4_private?
|
|
Rails.logger.info addrinfo.ip_address
|
|
local_ip = addrinfo.ip_address
|
|
end
|
|
end
|
|
begin
|
|
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080" }
|
|
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080", "username" => "#{nacos_config["username"]}", "password" => "#{nacos_config["password"]}" } if nacos_config["username"].present? && nacos_config["password"].present?
|
|
url = "#{nacos_config["url"]}/nacos/v1/ns/instance/beat"
|
|
uri = URI.parse(url)
|
|
http = Net::HTTP.new uri.host, uri.port
|
|
http.open_timeout = 60
|
|
http.read_timeout = 60
|
|
if uri.scheme == 'https'
|
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
|
http.use_ssl = true
|
|
end
|
|
request = Net::HTTP::Put.new(uri)
|
|
request.set_form_data(params) if params.present?
|
|
response = http.start { |http| http.request(request) }
|
|
Rails.logger.info "beat nacos response.body==#{response.body}"
|
|
|
|
rescue => e
|
|
Rails.logger.info("Heartbeat thread error: #{e.message}")
|
|
end
|
|
end
|
|
# scheduler.join
|