From 3841fba78ea57fa8d9426a3dabfaca6c5a60cffb Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 4 Jan 2022 15:58:04 -0600 Subject: [PATCH] jobs: remove DelayedJobs. Remove the DelayedJobs gem and database table. Completes the transition to GoodJob started in c06bfa64f and f4953549a. Downstream users can upgrade as follows: * Stop the Rails server. * Stop the DelayedJobs worker (normally running as `bin/delayed_job` or `bin/rails jobs:work`). * Run `bin/rails jobs:work` to finish any pending delayed jobs. * Run `bin/rails db:migrate` to create the good_jobs table and drop the delayed_jobs table. * Start the Rails server again. * Start the GoodJobs worker with `bin/good_job start`. --- Gemfile | 2 - Gemfile.lock | 7 -- bin/delayed_job | 6 -- config/initializers/delayed_jobs.rb | 14 ---- .../20220104214319_drop_delayed_jobs.rb | 24 ++++++ db/structure.sql | 79 +------------------ 6 files changed, 26 insertions(+), 106 deletions(-) delete mode 100755 bin/delayed_job delete mode 100644 config/initializers/delayed_jobs.rb create mode 100644 db/migrate/20220104214319_drop_delayed_jobs.rb diff --git a/Gemfile b/Gemfile index 4b114ff0e..b5f4b5734 100644 --- a/Gemfile +++ b/Gemfile @@ -4,8 +4,6 @@ gem 'dotenv-rails', :require => "dotenv/rails-now" gem "rails", "~> 6.0" gem "pg" -gem "delayed_job" -gem "delayed_job_active_record" gem "simple_form" gem "sanitize" gem 'ruby-vips' diff --git a/Gemfile.lock b/Gemfile.lock index 76f0a602e..103cfb9a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,11 +135,6 @@ GEM dead_end (3.1.0) debug_inspector (1.1.0) declarative (0.0.20) - delayed_job (4.1.9) - activesupport (>= 3.0, < 6.2) - delayed_job_active_record (4.1.6) - activerecord (>= 3.0, < 6.2) - delayed_job (>= 3.0, < 5) derailed_benchmarks (2.1.1) benchmark-ips (~> 2) dead_end @@ -537,8 +532,6 @@ DEPENDENCIES clockwork codecov daemons - delayed_job - delayed_job_active_record derailed_benchmarks diff-lcs dotenv-rails diff --git a/bin/delayed_job b/bin/delayed_job deleted file mode 100755 index 651baaea0..000000000 --- a/bin/delayed_job +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env ruby - -require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) -require 'delayed/command' -Delayed::Job.connection.execute "set statement_timeout=0" -Delayed::Command.new(ARGV).daemonize diff --git a/config/initializers/delayed_jobs.rb b/config/initializers/delayed_jobs.rb deleted file mode 100644 index 7cad7da0c..000000000 --- a/config/initializers/delayed_jobs.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'delayed/plugin' - -class DelayedJobTimeoutPlugin < ::Delayed::Plugin - callbacks do |lifecycle| - lifecycle.before(:execute) do |job| - Delayed::Job.connection.execute "set statement_timeout = 0" - end - end -end - -Delayed::Worker.logger = Logger.new(STDERR, level: :debug) -Delayed::Worker.default_queue_name = "default" -Delayed::Worker.destroy_failed_jobs = false -Delayed::Worker.plugins << DelayedJobTimeoutPlugin diff --git a/db/migrate/20220104214319_drop_delayed_jobs.rb b/db/migrate/20220104214319_drop_delayed_jobs.rb new file mode 100644 index 000000000..29119309f --- /dev/null +++ b/db/migrate/20220104214319_drop_delayed_jobs.rb @@ -0,0 +1,24 @@ +class DropDelayedJobs < ActiveRecord::Migration[6.1] + def up + drop_table :delayed_jobs + end + + def down + create_table :delayed_jobs do |t| + t.integer :priority, default: 0 + t.integer :attempts, default: 0 + t.text :handler + t.text :last_error + t.datetime :run_at + t.datetime :locked_at + t.datetime :failed_at + t.string :locked_by + t.timestamps null: false + t.string :queue + end + + add_index :delayed_jobs, :run_at + add_index :delayed_jobs, :locked_at + add_index :delayed_jobs, :locked_by + end +end diff --git a/db/structure.sql b/db/structure.sql index a302ad124..af7f73b7b 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -475,46 +475,6 @@ CREATE SEQUENCE public.comments_id_seq ALTER SEQUENCE public.comments_id_seq OWNED BY public.comments.id; --- --- Name: delayed_jobs; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.delayed_jobs ( - id integer NOT NULL, - priority integer DEFAULT 0, - attempts integer DEFAULT 0, - handler text, - last_error text, - run_at timestamp without time zone, - locked_at timestamp without time zone, - failed_at timestamp without time zone, - locked_by character varying, - created_at timestamp without time zone NOT NULL, - updated_at timestamp without time zone NOT NULL, - queue character varying -); - - --- --- Name: delayed_jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.delayed_jobs_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: delayed_jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.delayed_jobs_id_seq OWNED BY public.delayed_jobs.id; - - -- -- Name: dmails; Type: TABLE; Schema: public; Owner: - -- @@ -2331,13 +2291,6 @@ ALTER TABLE ONLY public.comment_votes ALTER COLUMN id SET DEFAULT nextval('publi ALTER TABLE ONLY public.comments ALTER COLUMN id SET DEFAULT nextval('public.comments_id_seq'::regclass); --- --- Name: delayed_jobs id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.delayed_jobs ALTER COLUMN id SET DEFAULT nextval('public.delayed_jobs_id_seq'::regclass); - - -- -- Name: dmails id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2727,14 +2680,6 @@ ALTER TABLE ONLY public.comments ADD CONSTRAINT comments_pkey PRIMARY KEY (id); --- --- Name: delayed_jobs delayed_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.delayed_jobs - ADD CONSTRAINT delayed_jobs_pkey PRIMARY KEY (id); - - -- -- Name: dmails dmails_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -3383,27 +3328,6 @@ CREATE INDEX index_comments_on_creator_ip_addr ON public.comments USING btree (c CREATE INDEX index_comments_on_post_id ON public.comments USING btree (post_id); --- --- Name: index_delayed_jobs_on_locked_at; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_delayed_jobs_on_locked_at ON public.delayed_jobs USING btree (locked_at); - - --- --- Name: index_delayed_jobs_on_locked_by; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by); - - --- --- Name: index_delayed_jobs_on_run_at; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at); - - -- -- Name: index_dmails_on_created_at; Type: INDEX; Schema: public; Owner: - -- @@ -5181,6 +5105,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20211018062916'), ('20211023225730'), ('20211121080239'), -('20220101224048'); +('20220101224048'), +('20220104214319');