2015-05-18 15 views
7

tôi có đường ray 4.2 + sidekiq vào thiết lập ubuntu và tôi bắt đầu công việc của tôi với cron mỗi giờ với một cái gì đó giống nhưRails Á hậu mà không mùa xuân

bin/rails runner -e production 'MyJob.perform_later' 

này về cơ bản có một công việc và đưa dữ liệu để redis, do đó sidekiq có thể lấy nó và bắt đầu từ đó. Nhưng mỗi khi tôi làm điều này tôi có những áp dụng mùa xuân này bị mắc kẹt và chờ đợi một cái gì đó (tiêu thụ bộ nhớ)

ps aux | grep spring 
root  Sl 07:13 0:00 spring server | myapp | started 6 secs ago 
root  Ssl 07:13 0:03 spring app | myapp | started 6 secs ago | production mode 

Thỉnh thoảng tôi thấy như 10 trong số đó. Có cách nào không khởi động máy chủ mùa xuân không?

Cảm ơn bạn.

Trả lời

13

Điều này xảy ra vì bạn đang sử dụng đá quý spring và thư mục bin của bạn đã được "springified".

Nếu bạn nhìn vào tệp bin/rails, bạn sẽ thấy rằng spring được tải trước khi tiếp tục với bất kỳ thứ gì bạn yêu cầu từ nó.

Bạn có thể "un-springify" thư mục bin của bạn bằng cách chạy

bin/spring binstub --remove --all 

Điều này có nghĩa các khóa học mà bạn chọn không tham gia từ tất cả các hoạt động có lợi cho mùa xuân mà cung cấp cho bạn. Điều này sẽ ổn cho môi trường sản xuất. Trong thực tế, bạn nên không cài đặt lò xo trong môi trường sản xuất [1].

Vì vậy, tôi khuyên bạn nên sửa đổi Gemfile và đặt spring của mình theo nhóm development. Trong quá trình sản xuất, bạn thường làm điều gì đó như:

bundle install --without development test 

Bằng cách đó, mùa xuân sẽ không bao giờ làm cho máy chủ sản xuất của bạn. Xem thêm this related issue trên Github.

-

1. Spring project readme file

11

Nếu bạn muốn giữ mùa xuân nói chung, bạn có thể tạm thời vô hiệu hóa mùa xuân cho một lệnh duy nhất bằng cách đặt trước từ đó biến DISABLE_SPRING môi trường:

DISABLE_SPRING=1 bin/rails runner -e production 'MyJob.perform_later' 

Edit: nhờ Tom Lobato và tpett cho việc sửa chữa .

+1

tôi phải làm 'DISABLE_SPRING = 1' thay vì' ENV = DISABLE_SPRING'. – tpett

5

Đó là DISABLE_SPRING=1 thay vì ENV=DISABLE_SPRING

+0

Cảm ơn sự điều chỉnh, và xin lỗi tôi đã cho tôi quá lâu để nhận thấy nó! – janfoeh

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