blah blah

Ruby 시간 관련 팁

1시간 전부터 생성된 데이타를 가져오는 Ruby 스크립트를 짜서 매시 정각에 실행되도록 스케쥴링 걸어두었다.

그런데 일부 데이타가 새나간다. 왜? 왜?

12:00:00 에 스케쥴링이 작동한다. 등록한 스크립트를 로딩하는데 5분이 걸렸다면?

길게 고민않고 active_support 에서 제공되는 ‘ago’ 메서드를 사용했더니 11:05:00 시 부터 생성된 데이타를 가져온다.

스크립트 실제 실행 시각과 상관없이 매시 정각 기준으로 시간 계산하는 방법 고민하다가 결국 찾았다.

time = Time.new

puts time                                         # 12:05:00

puts 1.hour.ago                            # 11:05:00

puts Time.parse(“#{time.hour}:00”) – 1.hour         # 11:00:00

puts Time.parse(“#{time.hour}:00”) – (1.hour + 1.minute)         # 10:59:00

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s