2014-05-01 48 views
0

我需要每天重命名一个文件,但是我是ruby的新手,并且在如何做到这一点时丢失了。是否有可能使用EventMachine每天执行一个方法

我有这样的方法:

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

是否有可能使它适用于此?

+0

运行作业一次,每天对我听起来像一个** **的cron任务。 – spickermann

+0

@spickermann但我需要它在代码上,但问题其实是,如果它可能与'EventMachine' – majidarif

回答

0

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

您可以使用whenever宝石从您的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 
+0

但这需要在'schedule.rb'的权利?不在我的代码? – majidarif

+0

如何执行此操作? – majidarif

+0

那个具体部分是。但它与其他组件一起存放在您的存储库中。你也可以在你想要的模块/类中有参数并将其用作配置。 – xlembouras

相关问题