forked from rails/mission_control-jobs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmission_control_jobs.rb
More file actions
33 lines (25 loc) · 979 Bytes
/
mission_control_jobs.rb
File metadata and controls
33 lines (25 loc) · 979 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
require "resque"
require "resque_pause_helper"
require "solid_queue"
Resque.redis = Redis::Namespace.new "#{Rails.env}", redis: Redis.new(host: "localhost", port: 6379)
SERVERS_BY_APP = {
BC4: %w[ resque_ashburn resque_chicago ],
HEY: %w[ resque solid_queue ]
}
def redis_connection_for(app, server)
redis_namespace = Redis::Namespace.new "#{app}:#{server}", redis: Resque.redis.instance_variable_get("@redis")
Resque::DataStore.new redis_namespace
end
# Filter sensitive arguments from the UI.
MissionControl::Jobs.filter_arguments = %w[ author ]
SERVERS_BY_APP.each do |app, servers|
queue_adapters_by_name = servers.collect do |server|
queue_adapter = if server.start_with?("resque")
ActiveJob::QueueAdapters::ResqueAdapter.new(redis_connection_for(app, server))
else
ActiveJob::QueueAdapters::SolidQueueAdapter.new
end
[ server, queue_adapter ]
end.to_h
MissionControl::Jobs.applications.add(app, queue_adapters_by_name)
end