From b00258f0143f3fed59a27eb74e8c683db35e51d6 Mon Sep 17 00:00:00 2001 From: brianlball Date: Sat, 10 Aug 2024 14:59:02 -0500 Subject: [PATCH] add prune_resque_workers API --- server/app/controllers/admin_controller.rb | 14 ++++++++++++++ server/app/controllers/data_points_controller.rb | 2 +- server/app/views/admin/index.html.erb | 4 ++++ server/config/routes.rb | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/server/app/controllers/admin_controller.rb b/server/app/controllers/admin_controller.rb index 706912c75..fbae95915 100644 --- a/server/app/controllers/admin_controller.rb +++ b/server/app/controllers/admin_controller.rb @@ -21,6 +21,20 @@ def index @os_cli = version ? version.strip : 'Unknown' end + def prune_resque_workers + Rails.logger.warn "Pruning Dead Resque Workers" + + # Enqueue a new job + worker = Resque::Worker.new() + worker.prune_dead_workers + worker.shutdown + + respond_to do |format| + format.html { redirect_to admin_index_path, notice: 'Resque Workers Pruned.' } + format.json { head :no_content } + end + end + def backup_database logger.info params write_and_send_data diff --git a/server/app/controllers/data_points_controller.rb b/server/app/controllers/data_points_controller.rb index 3f67d3b84..2b1d042c3 100644 --- a/server/app/controllers/data_points_controller.rb +++ b/server/app/controllers/data_points_controller.rb @@ -299,7 +299,7 @@ def result_files end def requeue - Rails.logger.warn "data_points_contoller.REQUEUE" + Rails.logger.warn "data_points_contoller.REQUEUEing #{@data_point.id}" @data_point = DataPoint.find(params[:id]) analysis_id = @data_point.analysis Rails.logger.debug "data_points_contoller.id: #{@data_point.id}" diff --git a/server/app/views/admin/index.html.erb b/server/app/views/admin/index.html.erb index 6f0c16f05..9bce2a911 100644 --- a/server/app/views/admin/index.html.erb +++ b/server/app/views/admin/index.html.erb @@ -14,6 +14,10 @@ <%= link_to 'View Resque Dashboard', resque_web_path, class: "btn btn-mini btn-primary" %> +
+ + <%= link_to 'Prune Dead Resque Workers', prune_resque_workers_admin_index_path, method: :post, class: "btn btn-mini btn-danger", data: { confirm: 'Are you sure you want to prune dead Resque workers?' } %> +
<% end %> diff --git a/server/config/routes.rb b/server/config/routes.rb index 60c62da7d..cc2d175d3 100644 --- a/server/config/routes.rb +++ b/server/config/routes.rb @@ -98,6 +98,7 @@ collection do get :backup_database post :restore_database + post :prune_resque_workers end end