2010-07-21 15 views
5

Tôi đang cố chuyển đổi ứng dụng đường ray thành jruby trên đường ray. Hiện nay, jruby script/delayed_job run cho:Có đá quý nào giống như delay_job cho jruby không?

/usr/lib/jruby/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:50:in `each_object': ObjectSpace is disabled; each_object will only work with Class, pass -X+O to enable (RuntimeError) 
    from /usr/lib/jruby/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:50:in `daemonize' 
    from script/delayed_job:5 

Có một viên ngọc như delayed_job cho JRuby?

Trả lời

1

Tôi đã không biết về ObjectSpace bị trì hoãn được sử dụng.
Jruby tắt theo mặc định và tôi không biết các tác động hiệu suất
bật tính năng này bằng -x + O.
Nếu bạn cần xử lý công việc đơn giản và ít công việc, bạn nên cân nhắc BackgrounDRB.
Nếu bạn cần thứ gì đó để mở rộng, bạn nên xem Workling/Starling.

1

Tôi có cùng một sự cố giống nhau. Cuối cùng, tôi quyết định sử dụng Resque thay vào đó, mà ban đầu tôi đã kháng cự vì tôi nghĩ nó sẽ là quá mức cần thiết. Bạn cũng có một phần di chuyển khác để cài đặt, Redis ...

Tuy nhiên, cuối cùng nó trở nên dễ cài đặt và rất linh hoạt. Tôi rất vui vì tôi đã thử.

+0

Were bạn sử dụng Resque và JRuby trên Windows hoặc trên một linux hoặc mac? –

+0

@AlexBlakemore Tiêu chuẩn công bằng: Mac để phát triển, Linux cho sản xuất. – Scott

+0

Cảm ơn bạn đã trả lời, đã cứu tôi khỏi lãng phí thời gian cố gắng vô ích để có được Resque làm việc trên Windows Server. Thật không may, chúng tôi đang gắn liền với một máy chủ cửa sổ cho bây giờ. –

2

Đối với hồ sơ, khi triển khai đến một container Servlet người ta có thể sử dụng để chạy https://github.com/kares/jruby-rack-workerDelayed::Job như một phần của JRuby::Rack ứng dụng của bạn trong một bản địa (daemon) thread riêng biệt ...