Skip to content

Commit

Permalink
+ handle exceptions in one place
Browse files Browse the repository at this point in the history
  • Loading branch information
grrrisu committed Mar 29, 2016
1 parent a94a801 commit 7969df0
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 9 deletions.
2 changes: 1 addition & 1 deletion examples/node/client/game.js
Expand Up @@ -35,7 +35,7 @@ module.exports = class Game {
let answer = data.answer;
errorCount++;
let time = new Date().toLocaleString();
$('#errors').prepend('<tr class="danger"><td>'+time+'</td><td>'+answer.component+': '+answer.error+' - '+answer.event+'</td></tr>');
$('#errors').prepend('<tr class="danger"><td>'+time+'</td><td>'+answer.error+' - '+answer.event+'</td></tr>');
});

let processedEventsChart = new MonitorChart({
Expand Down
7 changes: 7 additions & 0 deletions lib/sim/master.rb
Expand Up @@ -10,3 +10,10 @@ class Master < Celluloid::SupervisionGroup
supervise Net::PlayerServer, as: :player_server, args: [socket_file, {start: true}]
end
end

Celluloid.exception_handler do |exception|
event = {event: exception.backtrace.first, error: exception.message}
if monitor = Celluloid::Actor[:monitor]
monitor.async.add_error event
end
end
8 changes: 0 additions & 8 deletions lib/sim/queue/fire_worker.rb
Expand Up @@ -23,21 +23,13 @@ def process event
debug "process event #{event.inspect}"
event.fire # later maybe retry
monitor_processed event
rescue RuntimeError => e
monitor_error event, e
raise # or retry
end

def monitor_processed event
event = {name: event.class.name}
Actor[:monitor].async.add_event event
end

def monitor_error event, error
event = {component: :fire_worker, event: event.class.name, error: error.message}
Actor[:monitor].async.add_error event
end

def shutdown
debug "shutdown fire worker"
end
Expand Down

0 comments on commit 7969df0

Please sign in to comment.