Merge pull request #9584 from tchak/maintenance_tasks

use maintenance tasks gem
This commit is contained in:
Paul Chavard 2023-10-19 16:07:17 +00:00 committed by GitHub
commit 9ad2c4358a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 87 additions and 1 deletions

View file

@ -58,6 +58,7 @@ gem 'listen' # Required by ActiveSupport::EventedFileUpdateChecker
gem 'lograge' gem 'lograge'
gem 'logstash-event' gem 'logstash-event'
gem 'mailjet', require: false gem 'mailjet', require: false
gem 'maintenance_tasks'
gem 'matrix' # needed by prawn and not default in ruby 3.1 gem 'matrix' # needed by prawn and not default in ruby 3.1
gem 'mini_magick' gem 'mini_magick'
gem 'net-imap', require: false # See https://github.com/mikel/mail/pull/1439 gem 'net-imap', require: false # See https://github.com/mikel/mail/pull/1439

View file

@ -348,6 +348,8 @@ GEM
ruby-vips (>= 2.0.17, < 3) ruby-vips (>= 2.0.17, < 3)
invisible_captcha (2.0.0) invisible_captcha (2.0.0)
rails (>= 5.0) rails (>= 5.0)
job-iteration (1.4.1)
activejob (>= 5.2)
jquery-rails (4.5.1) jquery-rails (4.5.1)
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0) railties (>= 4.2.0)
@ -408,6 +410,12 @@ GEM
activesupport (>= 3.1.0) activesupport (>= 3.1.0)
rack (>= 1.4.0) rack (>= 1.4.0)
rest-client (>= 2.0.0) rest-client (>= 2.0.0)
maintenance_tasks (2.3.2)
actionpack (>= 6.0)
activejob (>= 6.0)
activerecord (>= 6.0)
job-iteration (>= 1.3.6)
railties (>= 6.0)
marcel (1.0.2) marcel (1.0.2)
matrix (0.4.2) matrix (0.4.2)
memory_profiler (1.0.0) memory_profiler (1.0.0)
@ -864,6 +872,7 @@ DEPENDENCIES
lograge lograge
logstash-event logstash-event
mailjet mailjet
maintenance_tasks
matrix matrix
memory_profiler memory_profiler
mina mina

View file

View file

@ -25,6 +25,7 @@ as defined by the routes in the `admin/` namespace
<%= link_to "Delayed Jobs", manager_delayed_job_path, class: "navigation__link" %> <%= link_to "Delayed Jobs", manager_delayed_job_path, class: "navigation__link" %>
<%= link_to "Features", manager_flipper_path, class: "navigation__link" %> <%= link_to "Features", manager_flipper_path, class: "navigation__link" %>
<%= link_to "Maintenance Tasks", manager_maintenance_tasks_path, class: "navigation__link" %>
<%= link_to "Import data via CSV", manager_import_procedure_tags_path, class: "navigation__link" %> <%= link_to "Import data via CSV", manager_import_procedure_tags_path, class: "navigation__link" %>
<% if Rails.application.secrets.sendinblue[:enabled] && ENV["SAML_IDP_ENABLED"] == "enabled" %> <% if Rails.application.secrets.sendinblue[:enabled] && ENV["SAML_IDP_ENABLED"] == "enabled" %>
<%= link_to "Sendinblue", ENV.fetch("SENDINBLUE_LOGIN_URL"), class: "navigation__link", target: '_blank' %> <%= link_to "Sendinblue", ENV.fetch("SENDINBLUE_LOGIN_URL"), class: "navigation__link", target: '_blank' %>

View file

@ -92,6 +92,7 @@ Rails.application.routes.draw do
authenticate :super_admin do authenticate :super_admin do
mount Flipper::UI.app(-> { Flipper.instance }) => "/features", as: :flipper mount Flipper::UI.app(-> { Flipper.instance }) => "/features", as: :flipper
match "/delayed_job" => DelayedJobWeb, :anchor => false, :via => [:get, :post] match "/delayed_job" => DelayedJobWeb, :anchor => false, :via => [:get, :post]
mount MaintenanceTasks::Engine => "/maintenance_tasks"
end end
get 'import_procedure_tags' => 'procedures#import_data' get 'import_procedure_tags' => 'procedures#import_data'

View file

@ -0,0 +1,23 @@
# frozen_string_literal: true
# This migration comes from maintenance_tasks (originally 20201211151756)
class CreateMaintenanceTasksRuns < ActiveRecord::Migration[6.0]
def change
create_table(:maintenance_tasks_runs) do |t|
t.string(:task_name, null: false)
t.datetime(:started_at)
t.datetime(:ended_at)
t.float(:time_running, default: 0.0, null: false)
t.bigint(:tick_count, default: 0, null: false)
t.bigint(:tick_total)
t.string(:job_id)
t.string(:cursor)
t.string(:status, default: :enqueued, null: false)
t.string(:error_class)
t.string(:error_message)
t.text(:backtrace)
t.timestamps
t.index([:task_name, :status, :created_at], order: { created_at: :desc }, name: :index_maintenance_tasks_runs)
end
end
end

View file

@ -0,0 +1,8 @@
# frozen_string_literal: true
# This migration comes from maintenance_tasks (originally 20210517131953)
class AddArgumentsToMaintenanceTasksRuns < ActiveRecord::Migration[6.0]
def change
add_column(:maintenance_tasks_runs, :arguments, :text)
end
end

View file

@ -0,0 +1,14 @@
# frozen_string_literal: true
# This migration comes from maintenance_tasks (originally 20211210152329)
class AddLockVersionToMaintenanceTasksRuns < ActiveRecord::Migration[6.0]
def change
add_column(
:maintenance_tasks_runs,
:lock_version,
:integer,
default: 0,
null: false
)
end
end

View file

@ -0,0 +1,8 @@
# frozen_string_literal: true
# This migration comes from maintenance_tasks (originally 20230622035229)
class AddMetadataToRuns < ActiveRecord::Migration[6.0]
def change
add_column(:maintenance_tasks_runs, :metadata, :text)
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2023_10_10_083144) do ActiveRecord::Schema[7.0].define(version: 2023_10_10_103144) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto" enable_extension "pgcrypto"
enable_extension "plpgsql" enable_extension "plpgsql"
@ -709,6 +709,27 @@ ActiveRecord::Schema[7.0].define(version: 2023_10_10_083144) do
t.index ["email", "dossier_id"], name: "index_invites_on_email_and_dossier_id", unique: true t.index ["email", "dossier_id"], name: "index_invites_on_email_and_dossier_id", unique: true
end end
create_table "maintenance_tasks_runs", force: :cascade do |t|
t.text "arguments"
t.text "backtrace"
t.datetime "created_at", null: false
t.string "cursor"
t.datetime "ended_at", precision: nil
t.string "error_class"
t.string "error_message"
t.string "job_id"
t.integer "lock_version", default: 0, null: false
t.text "metadata"
t.datetime "started_at", precision: nil
t.string "status", default: "enqueued", null: false
t.string "task_name", null: false
t.bigint "tick_count", default: 0, null: false
t.bigint "tick_total"
t.float "time_running", default: 0.0, null: false
t.datetime "updated_at", null: false
t.index ["task_name", "status", "created_at"], name: "index_maintenance_tasks_runs", order: { created_at: :desc }
end
create_table "merge_logs", force: :cascade do |t| create_table "merge_logs", force: :cascade do |t|
t.datetime "created_at", precision: 6, null: false t.datetime "created_at", precision: 6, null: false
t.string "from_user_email", null: false t.string "from_user_email", null: false

View file