Module: DelayedJobStatus

Defined in:
lib/delayed_job_status.rb,
lib/delayed_job_status/configuration.rb

Defined Under Namespace

Classes: Configuration

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



5
6
7
# File 'lib/delayed_job_status.rb', line 5

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



16
17
18
# File 'lib/delayed_job_status.rb', line 16

def self.configure
  yield(configuration)
end

.generateCodeObject



21
22
23
24
25
# File 'lib/delayed_job_status.rb', line 21

def self.generateCode
  o = [('a'..'z'), ('A'..'Z')].map(&:to_a).flatten
  string = (0...50).map { o[rand(o.length)] }.join
  return string
end

.generateMessageObject



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/delayed_job_status.rb', line 27

def self.generateMessage
  code = generateCode
  website = getWebsiteinfo

  message_before = {server: website[:server], website: website[:website], workers: website[:workers], code: code}.to_json
  message_after = {server: website[:server], website: website[:website], workers: website[:workers], code: code}.to_json

  sendMessage(message_before)

  self.delay(priority: -200).sendMessage(message_after)
end

.getWebsiteinfoObject



50
51
52
53
54
55
56
# File 'lib/delayed_job_status.rb', line 50

def self.getWebsiteinfo
  file = File.open("#{Rails.root}/config/deploy.rb")
  filetext = file.read
  num = filetext.split('delayed_job_workers,').last.strip().split("\n").first.strip
  website = filetext.split("application,").last.strip.split("\n").first.strip.remove('"')
  return {workers: num, website: website, server: Socket.gethostname}
end

.resetObject



12
13
14
# File 'lib/delayed_job_status.rb', line 12

def self.reset
  @configuration = Configuration.new
end

.sendMessage(m) ⇒ Object



39
40
41
42
43
44
45
46
47
48
# File 'lib/delayed_job_status.rb', line 39

def self.sendMessage(m)
  uri = URI.parse(@configuration.url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json'})
  request.body = m

  response = http.request(request)
end