我正致力于构建基于Rails的物联网平台,其中某些设备在某些预定时间被操纵。但是,我在特定时间运行操作时遇到困难,因为Heroku的内置Scheduling库似乎只支持不断间隔的回调。我的服务器需要在任意时间进行呼叫,而不会再重复。 Rails中是否还有其他任何可以提供此功能的宝石或方法?
答案 0 :(得分:0)
您可以使用delyed job gem。利用run_at
字段在特定时间运行您的任务
这是一个例子
class LongTasks
def send_mailer
# Some other code
end
handle_asynchronously :send_mailer, :priority => 20
def in_the_future
# Some other code
end
# 5.minutes.from_now will be evaluated when in_the_future is called
handle_asynchronously :in_the_future, :run_at => Proc.new { 5.minutes.from_now }
def self.when_to_run
2.hours.from_now
end
class << self
def call_a_class_method
# Some other code
end
handle_asynchronously :call_a_class_method, :run_at => Proc.new { when_to_run }
end
attr_reader :how_important
def call_an_instance_method
# Some other code
end
handle_asynchronously :call_an_instance_method, :priority => Proc.new {|i| i.how_important }
end