@@ -71,7 +71,9 @@ module LongRunnable |
||
| 71 | 71 |
stop! |
| 72 | 72 |
rescue StandardError => e |
| 73 | 73 |
message = "#{id} Exception #{e.message}:\n#{e.backtrace.first(10).join("\n")}"
|
| 74 |
- agent.error(message) |
|
| 74 |
+ AgentRunner.with_connection do |
|
| 75 |
+ agent.error(message) |
|
| 76 |
+ end |
|
| 75 | 77 |
end |
| 76 | 78 |
end |
| 77 | 79 |
end |
@@ -123,7 +123,9 @@ module Agents |
||
| 123 | 123 |
|
| 124 | 124 |
time, nick, message = normalize_args(event, args) |
| 125 | 125 |
|
| 126 |
- agent.create_event(payload: {event: event, time: time, nick: nick, message: message})
|
|
| 126 |
+ AgentRunner.with_connection do |
|
| 127 |
+ agent.create_event(payload: {event: event, time: time, nick: nick, message: message})
|
|
| 128 |
+ end |
|
| 127 | 129 |
end |
| 128 | 130 |
|
| 129 | 131 |
def stop |
@@ -236,7 +236,9 @@ module Agents |
||
| 236 | 236 |
next unless (filter.downcase.split(SEPARATOR) - status["text"].downcase.split(SEPARATOR)).reject(&:empty?) == [] # Hacky McHackerson |
| 237 | 237 |
@filter_to_agent_map[filter].each do |agent| |
| 238 | 238 |
puts " -> #{agent.name}"
|
| 239 |
- agent.process_tweet(filter, status) |
|
| 239 |
+ AgentRunner.with_connection do |
|
| 240 |
+ agent.process_tweet(filter, status) |
|
| 241 |
+ end |
|
| 240 | 242 |
end |
| 241 | 243 |
end |
| 242 | 244 |
end |
@@ -57,6 +57,12 @@ class AgentRunner |
||
| 57 | 57 |
@@agents << agent unless @@agents.include?(agent) |
| 58 | 58 |
end |
| 59 | 59 |
|
| 60 |
+ def self.with_connection |
|
| 61 |
+ ActiveRecord::Base.connection_pool.with_connection do |
|
| 62 |
+ yield |
|
| 63 |
+ end |
|
| 64 |
+ end |
|
| 65 |
+ |
|
| 60 | 66 |
private |
| 61 | 67 |
def run_workers |
| 62 | 68 |
workers = load_workers |
@@ -83,7 +89,9 @@ class AgentRunner |
||
| 83 | 89 |
next if @options[:only] && !@options[:only].include?(klass) |
| 84 | 90 |
next if @options[:except] && @options[:except].include?(klass) |
| 85 | 91 |
|
| 86 |
- (klass.setup_worker || []).each do |agent_worker| |
|
| 92 |
+ AgentRunner.with_connection do |
|
| 93 |
+ (klass.setup_worker || []) |
|
| 94 |
+ end.each do |agent_worker| |
|
| 87 | 95 |
workers[agent_worker.id] = agent_worker |
| 88 | 96 |
end |
| 89 | 97 |
end |