mirror of
https://github.com/plashchynski/crono.git
synced 2026-03-20 16:44:18 +01:00
Add rake task to clean DB
This commit is contained in:
@@ -11,5 +11,6 @@ require 'crono/scheduler'
|
||||
require 'crono/config'
|
||||
require 'crono/performer_proxy'
|
||||
require 'crono/orm/active_record/crono_job'
|
||||
require 'crono/railtie' if defined?(Rails)
|
||||
|
||||
Crono.autoload :Web, 'crono/web'
|
||||
|
||||
@@ -2,8 +2,6 @@ require 'crono'
|
||||
require 'optparse'
|
||||
|
||||
module Crono
|
||||
mattr_accessor :scheduler
|
||||
|
||||
# Crono::CLI - The main class for the crono daemon exacutable `bin/crono`
|
||||
class CLI
|
||||
include Singleton
|
||||
|
||||
@@ -5,5 +5,9 @@ module Crono
|
||||
class CronoJob < ActiveRecord::Base
|
||||
self.table_name = 'crono_jobs'
|
||||
validates :job_id, presence: true, uniqueness: true
|
||||
|
||||
def self.outdated
|
||||
self
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
9
lib/crono/railtie.rb
Normal file
9
lib/crono/railtie.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
module Crono
|
||||
class Railtie < ::Rails::Railtie
|
||||
rake_tasks do
|
||||
Dir[File.join(File.dirname(__FILE__), '../tasks/*.rake')].each do |file|
|
||||
load file
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -22,4 +22,6 @@ module Crono
|
||||
jobs.sort_by(&:next)
|
||||
end
|
||||
end
|
||||
|
||||
mattr_accessor :scheduler
|
||||
end
|
||||
|
||||
9
lib/tasks/crono_tasks.rake
Normal file
9
lib/tasks/crono_tasks.rake
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace :crono do
|
||||
desc 'Clean unused job stats from DB'
|
||||
task clean: :environment do
|
||||
Crono.scheduler = Crono::Scheduler.new
|
||||
require File.join(Rails.root, 'config', 'cronotab')
|
||||
current_job_ids = Crono.scheduler.jobs.map(&:job_id)
|
||||
Crono::CronoJob.where.not(job_id: current_job_ids).destroy_all
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user