Add rake task to clean DB

This commit is contained in:
Dzmitry Plashchynski
2015-03-16 17:34:25 +02:00
parent f57d440424
commit 7328bea24c
6 changed files with 25 additions and 2 deletions

View File

@@ -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'

View File

@@ -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

View File

@@ -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
View 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

View File

@@ -22,4 +22,6 @@ module Crono
jobs.sort_by(&:next)
end
end
mattr_accessor :scheduler
end

View 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