Skip to content

Commit e7dd9d3

Browse files
committed
Create recurring_executions table
To keep track of the jobs associated with each recurring task and to avoid creating duplicate ones.
1 parent efadb87 commit e7dd9d3

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class CreateRecurringExecutions < ActiveRecord::Migration[7.1]
2+
def change
3+
create_table :solid_queue_recurring_executions do |t|
4+
t.references :job, index: { unique: true }, null: false
5+
t.string :task_key, null: false
6+
t.datetime :run_at, null: false
7+
t.datetime :created_at, null: false
8+
9+
t.index [ :task_key, :run_at ], unique: true
10+
end
11+
12+
add_foreign_key :solid_queue_recurring_executions, :solid_queue_jobs, column: :job_id, on_delete: :cascade
13+
end
14+
end

test/dummy/db/schema.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema[7.1].define(version: 2024_01_10_143450) do
13+
ActiveRecord::Schema[7.1].define(version: 2024_02_18_110712) do
1414
create_table "job_results", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
1515
t.string "queue_name"
1616
t.string "status"
@@ -92,6 +92,15 @@
9292
t.index ["queue_name", "priority", "job_id"], name: "index_solid_queue_poll_by_queue"
9393
end
9494

95+
create_table "solid_queue_recurring_executions", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
96+
t.bigint "job_id", null: false
97+
t.string "task_key", null: false
98+
t.datetime "run_at", null: false
99+
t.datetime "created_at", null: false
100+
t.index ["job_id"], name: "index_solid_queue_recurring_executions_on_job_id", unique: true
101+
t.index ["task_key", "run_at"], name: "index_solid_queue_recurring_executions_on_task_key_and_run_at", unique: true
102+
end
103+
95104
create_table "solid_queue_scheduled_executions", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
96105
t.bigint "job_id", null: false
97106
t.string "queue_name", null: false
@@ -117,5 +126,6 @@
117126
add_foreign_key "solid_queue_claimed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
118127
add_foreign_key "solid_queue_failed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
119128
add_foreign_key "solid_queue_ready_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
129+
add_foreign_key "solid_queue_recurring_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
120130
add_foreign_key "solid_queue_scheduled_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
121131
end

0 commit comments

Comments
 (0)