30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/activerecord/oracle/queue/watcher.rb', line 30
def watch
Rails.logger = Logger.new(STDOUT)
connection = fetch_connection
cursor = fetch_cursor(connection)
cursor.bind_param(":p", nil, String, 4000)
Rails.logger.info(log_message("Starting watching queue #{self::QueueName}"))
while true
cursor.exec()
begin
Rails.logger.info(log_message("Retrieve message with #{cursor[":p"]}"))
json = ActiveSupport::JSON.decode(cursor[":p"])
instance = self.new
Rails.logger.info(log_message("Perform with #{cursor[":p"]}"))
instance.perform(json)
rescue JSON::ParserError => exception
Rails.logger.error(log_message(exception))
end
connection.commit Rails.logger.info(log_message("Perform is done... Dequeueing..."))
end
end
|