是否可以使用EventMachine每天执行一个方法

时间:2014-05-01 12:01:12

标签: ruby events scheduled-tasks

我需要每天重命名一个文件,但我是ruby的新手,并且对如何操作感到迷茫。

我有这个方法:

def self.start_server
  begin
    EventMachine.run {
      update_now
      start_servers
      EventMachine.add_periodic_timer(1) { update_now }
      EventMachine.add_periodic_timer(@config[:interval]) { write_queue }
      EventMachine.add_periodic_timer(@config[:syncinterval]) { flush_queue }
    }
  ensure
    cleanup
  end
end

是否可以在这里添加每天运行一次的东西。将文件重命名为以下格式<yyymmdd>.sqlite

的方法

是否可以使其适用于此?

1 个答案:

答案 0 :(得分:0)

我同意@spickermann,这是cron的任务。

您可以使用whenever gem从ruby代码管理您的cron作业。它是用于配置ruby项目的重复任务的dsl。

通过这种方式,您可以将所有必需的配置保存到ruby代码中。

doc示例:

every 3.hours do
  runner "MyModel.some_process"
  rake "my:rake:task"
  command "/usr/bin/my_great_command"
end

every 1.day, :at => '4:30 am' do
  runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end