mirror of
https://github.com/Fishwaldo/huginn.git
synced 2025-03-15 19:31:26 +00:00
Merge pull request #1844 from dsander/fixed-schedule-times
Run every_X schedules on fixed times
This commit is contained in:
commit
89a9f2594f
4 changed files with 21 additions and 7 deletions
2
Gemfile
2
Gemfile
|
@ -118,7 +118,7 @@ gem 'multi_xml'
|
|||
gem 'nokogiri'
|
||||
gem 'omniauth', '~> 1.3.1'
|
||||
gem 'rails', '~> 5.0.1'
|
||||
gem 'rufus-scheduler', '~> 3.0.8', require: false
|
||||
gem 'rufus-scheduler', '~> 3.3.2', require: false
|
||||
gem 'sass-rails', '~> 5.0.6'
|
||||
gem 'select2-rails', '~> 3.5.4'
|
||||
gem 'spectrum-rails'
|
||||
|
|
|
@ -479,7 +479,7 @@ GEM
|
|||
rest-client
|
||||
ruby-growl (4.1)
|
||||
uuid (~> 2.3, >= 2.3.5)
|
||||
rufus-scheduler (3.0.9)
|
||||
rufus-scheduler (3.3.2)
|
||||
tzinfo
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.14)
|
||||
|
@ -675,7 +675,7 @@ DEPENDENCIES
|
|||
rspec-rails (~> 3.5.2)
|
||||
rturk (~> 2.12.1)
|
||||
ruby-growl (~> 4.1.0)
|
||||
rufus-scheduler (~> 3.0.8)
|
||||
rufus-scheduler (~> 3.3.2)
|
||||
sass-rails (~> 5.0.6)
|
||||
select2-rails (~> 3.5.4)
|
||||
shoulda-matchers
|
||||
|
|
|
@ -19,8 +19,8 @@ class Agent < ActiveRecord::Base
|
|||
|
||||
load_types_in "Agents"
|
||||
|
||||
SCHEDULES = %w[every_1m every_2m every_5m every_10m every_30m every_1h every_2h every_5h every_12h every_1d every_2d every_7d
|
||||
midnight 1am 2am 3am 4am 5am 6am 7am 8am 9am 10am 11am noon 1pm 2pm 3pm 4pm 5pm 6pm 7pm 8pm 9pm 10pm 11pm never]
|
||||
SCHEDULES = %w[every_1m every_2m every_5m every_10m every_30m every_1h every_2h every_5h every_12h every_1d every_2d] + [OpenStruct.new(to_s: 'every_7d', humanize: 'Every Monday')] +
|
||||
%w[midnight 1am 2am 3am 4am 5am 6am 7am 8am 9am 10am 11am noon 1pm 2pm 3pm 4pm 5pm 6pm 7pm 8pm 9pm 10pm 11pm never]
|
||||
|
||||
EVENT_RETENTION_SCHEDULES = [["Forever", 0], ['1 hour', 1.hour], ['6 hours', 6.hours], ["1 day", 1.day], *([2, 3, 4, 5, 7, 14, 21, 30, 45, 90, 180, 365].map {|n| ["#{n} days", n.days] })]
|
||||
|
||||
|
|
|
@ -96,6 +96,20 @@ class HuginnScheduler < LongRunnable::Worker
|
|||
include LongRunnable
|
||||
|
||||
FAILED_JOBS_TO_KEEP = 100
|
||||
SCHEDULE_TO_CRON = {
|
||||
'1m' => '*/1 * * * *',
|
||||
'2m' => '*/2 * * * *',
|
||||
'5m' => '*/5 * * * *',
|
||||
'10m' => '*/10 * * * *',
|
||||
'30m' => '*/30 * * * *',
|
||||
'1h' => '0 * * * *',
|
||||
'2h' => '0 */2 * * *',
|
||||
'5h' => '0 */5 * * *',
|
||||
'12h' => '0 */12 * * *',
|
||||
'1d' => '0 0 * * *',
|
||||
'2d' => '0 0 */2 * *',
|
||||
'7d' => '0 0 * * 1',
|
||||
}
|
||||
|
||||
def setup
|
||||
tzinfo_friendly_timezone = ActiveSupport::TimeZone::MAPPING[ENV['TIMEZONE'].presence || "Pacific Time (US & Canada)"]
|
||||
|
@ -116,8 +130,8 @@ class HuginnScheduler < LongRunnable::Worker
|
|||
end
|
||||
|
||||
# Schedule repeating events.
|
||||
%w[1m 2m 5m 10m 30m 1h 2h 5h 12h 1d 2d 7d].each do |schedule|
|
||||
every schedule do
|
||||
SCHEDULE_TO_CRON.keys.each do |schedule|
|
||||
cron "#{SCHEDULE_TO_CRON[schedule]} #{tzinfo_friendly_timezone}" do
|
||||
run_schedule "every_#{schedule}"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue