0

루비 스케줄러, 즉 rufus-scheduler를 작성 중이며 1 분 정도 간격으로 작업을 수행하기 위해 config 폴더의 이니셜 라이저 섹션에 작성해야하는 명령이 있습니다. 이 모듈 내에서 메서드에 액세스하려고합니다. 그래서 내 코드는 모델에 필요한 작업을 수행하지 않습니다 어떻게 든구성 파일에서 모델 호출

scheduler.every("1m") do 
    puts("HELLO #{Time.now}") 
    ModelName.methodname("WHAT ARE YOU DOING") 
end 

이 같을 것이다. 또한 이것이 설정 파일 안에 모델을 호출하는 것과 같은 일을하는 올바른 방법인지 확실하지 않습니다. 이 코드를 모델에 넣을 수있는 더 좋은 곳이 있습니까? 또는 구성 파일 내의 모델을 완벽하게 우수 사례라고 부릅니다. 나는 인터넷을 통해 다양한 종류의 파일을 루비에서 사용하는 것을 보았지만 적절한 자료를 찾을 수 없었다. 어떤 도움이나 지침도 감사합니다.

답변

1

실제로 어떤 일종의 실제 예정된 동작이 필요한 것 같습니다. 구성 파일은 구성을위한 것이지 실제 해당 작업 코드와는 다릅니다.

레일에 예약 된 작업을 실행하는 방법은 톤입니다.

google "rails daemons"또는 "rails scheduled tasks"를 시작하면됩니다. A cron job for rails: best practices?

2

당신이 독립 실행 형 작업에서 가장 좋은 방법은 모델에 액세스하려면 가 rails runner 래퍼를 사용하는 것입니다

여기 크론를 사용하여 예약 된 작업 모범 사례의 좋은 목록입니다. 예를 들어, 당신은 당신의 스크립트를 호출 할 것 : 레일 환경에서

rails runner call_model.rb 

이 하중을하고 자신을 그렇게 할 필요가 없습니다 스크립트를 실행합니다. Rails의 컨텍스트가 부족하기 때문에 모델 자체가 작동하지 않습니다.

충분하지 않은 경우 config/environment.rb을 rufus-scheduler 구성에 포함하여 Rails 환경을보다 직접로드해야 할 수 있습니다.