보석

2014-12-29 3 views
0

내가 내 때마다 보석의 schedule.rb 파일에 매우 간단한 방법을 설정 한마다로 카피 스트라 노의 구성을 통해 얻기는보석

every 10.minutes do 
    rake "update_models" 
end 

지금 달성하기 위해 노력하고있어 모든 자동은 ​​crontab을 만들 카피 스트라 노를 구성이다

whenever --update-crontab --set environment=development 

또는

whenever -i 

하지만를 호출하여 내가 얻는 데 실패 봤는데 긴 구성 프로세스를 통해 내 Capfile는 다음

require "whenever/capistrano" 

내 deploy.rb 파일이있는 다음 : 난 그냥 얻으려고

namespace :deploy do 
    task :update_crontab do 
    run "cd /Users/affinities/Desktop/my_app && bundle exec whenever --update-crontab --set environment=development" 
    end 
end 

보석 내가 시작할 때마다이 schedule.rb 파일의 킥오프 할 때마다 서버. 다른 사람이 나에게 카피스트라 노를 최소량 설치하도록 요구할 수 있습니까? "레일 서버"를 실행할 때 crontab이 업데이트되기를 원합니다. 지금은 개발 환경에서 바로 시도하고 있습니다.

답변

1

나는 왜 카피 스트라 노가 rails server 명령으로 작업을해야한다고 생각합니까? Capistrano는 배포 목적으로 사용되며 현지 rails server 시작과 관련이 없습니다. Capfile

require "whenever/capistrano" 

이 줄을 포함하여를 배포하는 각 에 crontab을 재 작성 카피 스트라 노를 말한다. 또한이 변수에 config/deploy/x.rb에 설정된 환경 인 set :rails_env, 'environment'을 사용합니다. 따라서 require 라인 만 있으면됩니다. 그리고 당신의 run 명령 (및 작업 따라서는) 아무 의미하지 않습니다 :

run "cd /Users/affinities/Desktop/my_app && bundle exec whenever --update-crontab --set environment=development" 
+0

가 좋아, 내가 그 내 질문에 대한 답 생각을 ... 서버가 카피 스트라 노 것이다 기본적으로 아무것도하지 않고, 올바른를 실행하는 로컬 서버에 대한 배포 및 그렇지 않다 레일 ? 나는 Rufus-scheduler를 사용하여 나의 문제를 해결할 수 있었다. –

+0

@ affinities23 배포에 대한 기사를 읽어야합니다. 하지만 capistrano는 저장소 (예 : github)에서 원격 서버 (들)로 코드를 전달하는 데 사용되며, 배포 후에는 언제든지 원격 서버에서 crontab을 다시 작성합니다. –

+0

알았어, 간단한 설명을 해 주셔서 감사합니다. –