An addition to Sidetiq to make it easier to declare the worker's schedule's timezone. Assumes ActiveRecord::TimeZone is available.
# Timezone extension to Sidetiq | |
Sidetiq::Schedulable::ClassMethods.class_eval do | |
# Sets the time zone for the recurrence rules. | |
# | |
# Example: | |
# | |
# class MyWorker | |
# include Sidekiq::Worker | |
# include Sidetiq::Schedulable | |
# | |
# schedule_time_zone "Australia/Perth" | |
# | |
# recurrence do | |
# daily.hour_of_day(13) | |
# end | |
# | |
# def perform | |
# puts "It's 1pm in Perth" | |
# end | |
# end | |
def schedule_time_zone(time_zone_name) | |
zone = ActiveSupport::TimeZone[time_zone_name] | |
# We use 2010-1-1 for the start time because that's what Sidetiq uses, and | |
# you probably need it to be in the past to do backfilling | |
schedule.start_time = zone.local(2010, 1, 1) | |
end | |
end | |
Sidetiq::Schedule.class_eval do | |
# Returns the time_zone for the schedule. Handy in Rspec assertions to | |
# verify that a worker's schedule is using the right timezone. | |
def time_zone | |
start_time.time_zone | |
end | |
end |
This comment has been minimized.
This comment has been minimized.
Apparently the update to newer version of ice_cube which allowed us to do this was reverted due to memory leak issue. A note for someone else like me who comes looking here. |
This comment has been minimized.
This comment has been minimized.
@nikhilvij Which version causes the memory leack? |
This comment has been minimized.
This comment has been minimized.
Where would this file go on the rails app? Does it work with sidetiq 0.7.2? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Used this but it still seems to be scheduling according to the utc time for me