2010-12-13 35 views
5

Tôi đang cố gắng sử dụng đá quý whenever trong ứng dụng của mình nhưng tôi không thể chạy lệnh cào trong schedule.rb.Vấn đề sử dụng bất cứ khi nào đá quý

Lỗi được ném lên là

/bin/bash: rake: command not found 

Tôi cũng đang sử dụng bundler vì vậy tất cả đá quý của tôi đang đóng băng vào ứng dụng.

Trả lời

4

Cào ở đâu đó không điển hình, như/usr/local/bin? Hãy thử thêm mục này vào lịch biểu.rb:

env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' 
0

Hãy thử sử dụng 'lệnh' thay vì cào. Cào của tôi là trong/usr/local/bin và tôi không thể tìm ra cách làm cho nó hoạt động. Vì vậy, đây là ví dụ về lệnh thay vì theo lịch.rb:

every 5.minutes do 
    command "cd " + `pwd`.chomp + " && RAILS_ENV=#{environment} /usr/local/bin/rake rakefile:rakemethod" 
end 

Lưu ý bạn cũng phải chuyển sang môi trường trong ví dụ này. Tôi nghĩ bạn chỉ cần làm điều đó với 'bất cứ khi nào --update_crontab --set environment = beta' khi bạn gọi schedule.rb.

Tôi có capistrano làm điều đó bằng cách sử dụng các công thức nấu ăn capistrano trong đá quý bất cứ khi nào (xem lib dirs theo nguồn bất cứ khi nào). Tôi phải đặt every_environment trong kịch bản triển khai capistrano của mình.

bất cứ khi nào có thể mặc định để sản xuất, vì vậy tôi chỉ chơi đùa với nó và xem. Nói cách khác, bạn có thể không cần RAILS_ENV = # {environment} nếu bạn chỉ làm điều này trong quá trình sản xuất. Tôi có một số môi trường dàn dựng nên tôi vượt qua môi trường để giúp kịch bản.

Nếu chỉ tôi có thể chỉ định một thư mục cào khác để làm việc này với/usr/local/bin/rake! Bất cứ ai giúp đỡ trên mặt trận đó?

Các vấn đề liên quan