mirror of
https://github.com/plashchynski/crono.git
synced 2026-04-28 03:37:21 +02:00
Add rake task to clean DB
This commit is contained in:
@@ -11,5 +11,6 @@ require 'crono/scheduler'
|
|||||||
require 'crono/config'
|
require 'crono/config'
|
||||||
require 'crono/performer_proxy'
|
require 'crono/performer_proxy'
|
||||||
require 'crono/orm/active_record/crono_job'
|
require 'crono/orm/active_record/crono_job'
|
||||||
|
require 'crono/railtie' if defined?(Rails)
|
||||||
|
|
||||||
Crono.autoload :Web, 'crono/web'
|
Crono.autoload :Web, 'crono/web'
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ require 'crono'
|
|||||||
require 'optparse'
|
require 'optparse'
|
||||||
|
|
||||||
module Crono
|
module Crono
|
||||||
mattr_accessor :scheduler
|
|
||||||
|
|
||||||
# Crono::CLI - The main class for the crono daemon exacutable `bin/crono`
|
# Crono::CLI - The main class for the crono daemon exacutable `bin/crono`
|
||||||
class CLI
|
class CLI
|
||||||
include Singleton
|
include Singleton
|
||||||
|
|||||||
@@ -5,5 +5,9 @@ module Crono
|
|||||||
class CronoJob < ActiveRecord::Base
|
class CronoJob < ActiveRecord::Base
|
||||||
self.table_name = 'crono_jobs'
|
self.table_name = 'crono_jobs'
|
||||||
validates :job_id, presence: true, uniqueness: true
|
validates :job_id, presence: true, uniqueness: true
|
||||||
|
|
||||||
|
def self.outdated
|
||||||
|
self
|
||||||
|
end
|
||||||
end
|
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)
|
jobs.sort_by(&:next)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
mattr_accessor :scheduler
|
||||||
end
|
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