Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com> This commit refactors the entire application to replace the 'parties' concept with 'events'. All controllers, models, views, and related files have been updated to reflect this change. The parties table has been replaced with an events table, and all related functionality has been updated accordingly.
48 lines
1.0 KiB
Ruby
Executable File
48 lines
1.0 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
# A sample pre-connect check
|
|
#
|
|
# Warms DNS before connecting to hosts in parallel
|
|
#
|
|
# These environment variables are available:
|
|
# KAMAL_RECORDED_AT
|
|
# KAMAL_PERFORMER
|
|
# KAMAL_VERSION
|
|
# KAMAL_HOSTS
|
|
# KAMAL_ROLES (if set)
|
|
# KAMAL_DESTINATION (if set)
|
|
# KAMAL_RUNTIME
|
|
|
|
hosts = ENV["KAMAL_HOSTS"].split(",")
|
|
results = nil
|
|
max = 3
|
|
|
|
elapsed = Benchmark.realtime do
|
|
results = hosts.map do |host|
|
|
Thread.new do
|
|
tries = 1
|
|
|
|
begin
|
|
Socket.getaddrinfo(host, 0, Socket::AF_UNSPEC, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)
|
|
rescue SocketError
|
|
if tries < max
|
|
puts "Retrying DNS warmup: #{host}"
|
|
tries += 1
|
|
sleep rand
|
|
retry
|
|
else
|
|
puts "DNS warmup failed: #{host}"
|
|
host
|
|
end
|
|
end
|
|
|
|
tries
|
|
end
|
|
end.map(&:value)
|
|
end
|
|
|
|
retries = results.sum - hosts.size
|
|
nopes = results.count { |r| r == max }
|
|
|
|
puts "Prewarmed %d DNS lookups in %.2f sec: %d retries, %d failures" % [ hosts.size, elapsed, retries, nopes ]
|