Sha256: 5a07f17918488fa9571708e071d2072f4e5a6935e39cacc454e045ec17b755f0
Contents?: true
Size: 1.77 KB
Versions: 3
Compression:
Stored size: 1.77 KB
Contents
# The MIT License (MIT) # Copyright (c) 2024 Mike DeAngelo Google, Inc. # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # the Software, and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # frozen_string_literal: true module Gzr module Cron def randomize_cron(crontab, window=60) cronfields = crontab.split(%r{\s+}) minute = cronfields[0].to_i hour = cronfields[1].to_i factor = rand(window) - (window/2) minute = minute + factor if minute < 0 hour = hour - 1 minute = minute + 60 end if hour < 0 hour = 23 end if minute > 59 hour = hour + 1 minute = minute - 60 end if hour > 23 hour = 0 end cronfields[0] = minute cronfields[1] = hour if /^[[:digit:]]+$/.match? cronfields[1] return cronfields.join(' ') end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gazer-0.3.18 | lib/gzr/modules/cron.rb |
gazer-0.3.17 | lib/gzr/modules/cron.rb |
gazer-0.3.16 | lib/gzr/modules/cron.rb |