Skip to content

Commit 84cb6e4

Browse files
committed
Add new column name to processes
So we can uniquely identify processes by supervisor and name, without having to rely on the PID, that can be duplicated across processes.
1 parent ab65b4c commit 84cb6e4

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class AddNameToProcesses < ActiveRecord::Migration[7.1]
2+
def up
3+
add_column :solid_queue_processes, :name, :string
4+
5+
SolidQueue::Process.find_each do |process|
6+
process.name ||= [ process.kind.downcase, SecureRandom.hex(10) ].join("-")
7+
process.save!
8+
end
9+
10+
add_index :solid_queue_processes, [ :name, :supervisor_id ], unique: true
11+
change_column :solid_queue_processes, :name, :string, null: false
12+
end
13+
14+
def down
15+
remove_index :solid_queue_processes, [ :name, :supervisor_id ]
16+
remove_column :solid_queue_processes, :name
17+
end
18+
end

test/dummy/db/schema.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@
7878
t.string "hostname"
7979
t.text "metadata"
8080
t.datetime "created_at", null: false
81+
t.string "name", null: false
8182
t.index ["last_heartbeat_at"], name: "index_solid_queue_processes_on_last_heartbeat_at"
83+
t.index ["name", "supervisor_id"], name: "index_solid_queue_processes_on_name_and_supervisor_id", unique: true
8284
t.index ["supervisor_id"], name: "index_solid_queue_processes_on_supervisor_id"
8385
end
8486

0 commit comments

Comments
 (0)