2010-02-15 4 views
1

나는 루비를 사용하는 레일즈 응용 프로그램을 가지고 있습니다. DB에 너무 무거워서 전체 시스템을 잠그는 DB에 가져 오기/내보내기 작업 같은 것을 실행할 필요가 있습니다. 데이터베이스가 그 초에 사용되지 않을 때에 만 이러한 작업을 실행하도록 시스템에 알리는 방법이 있습니까?Ruby on Rails에서 DB가 무료 일 때의 작업 실행하기 Heroku

답변

1

이와 같은 작업을 예약하는 기본 제공 방법이 없습니다. 하지만 할 수있는 일이 몇 가지 있습니다.

  • 하루 중 가장 바쁜 시간대에 작업이 실행되도록 예약합니다. 그것은 당신의 사업, 고객 기반 등에 달려 있지만, 다른 사람들보다 더 적합한 창문이 있기를 바랍니다.

  • 작은 작업 단위를 사용하여 더 긴 시간 동안 실행되도록 배치 작업을 작성할 수 있습니다. 각 작업 단위 사이에서 몇 초 동안 잠을 자거나 현재 평균 부하를 살펴보고이를 바탕으로 수행 할 작업을 결정하십시오. 이렇게하면 배치 작업의 영향을 줄일 수 있습니다.

  • 데이터베이스 또는 memcached 또는 다른 곳에서 웹 사이트 업데이트를 "잠금"으로 설정하십시오. 일반적인 웹 사이트 사용이 데이터베이스를 업데이트하는 경우 기존 updated_at을 볼 수 있습니다. 잠시 동안 활동이 없으면 배치 작업 만하십시오. 물론 새 사용자가 배치 작업이 실행되는 동시에 팝업되지 않을 수도 있지만 사이트 사용 빈도가 낮은 창을 찾는 방법이 될 수 있습니다.

관련 문제