2011-09-12 4 views
5

Tôi có ứng dụng Sinatra tôi dự định lưu trữ trên Heroku.Cách tốt nhất để chạy tập lệnh Ruby là một tiến trình con/một luồng khác từ Sinatra là gì?

Ứng dụng này, một phần, bị xước rất nhiều thông tin từ các trang khác trên mạng và lưu trữ thông tin vào cơ sở dữ liệu. Các hoạt động tháo dỡ này là một quá trình chậm, vì vậy tôi cần chúng chạy trong một luồng/quy trình khác tách biệt khỏi ứng dụng Sinatra của tôi.

Kế hoạch của tôi chỉ là có một nút cho mỗi quy trình mà tôi có thể nhấp và việc tháo dỡ sẽ diễn ra ở chế độ nền.

Tôi không chắc chắn cách tốt nhất để làm điều này, phức tạp bởi những gì Heroku sẽ cho phép.

Trả lời

4

Có một viên ngọc gọi hirefire đặc biệt cho rằng:

HireFire tự động "thuê" và "cháy" (hay còn gọi là "quy mô") bị trì hoãn công việc và công nhân Resque trên Heroku. Khi không có công việc xếp hàng, ThuêFire sẽ kích hoạt (tắt) tất cả công nhân. Nếu có các công việc xếp hàng đợi thì nó sẽ thuê (quay lên) công nhân. Số lượng công nhân được thuê tùy thuộc vào số lượng công việc xếp hàng đợi (tỷ lệ có thể được cấu hình bởi bạn). ThuêFire là tuyệt vời cho cả ứng dụng lưu lượng cao, trung bình và thấp. Nó có thể giúp bạn tiết kiệm rất nhiều tiền bằng cách chỉ thuê công nhân khi có các công việc đang chờ xử lý và sau đó kích hoạt lại sau khi tất cả các công việc đã được xử lý. Nó cũng có khả năng giảm đáng kể thời gian xử lý bằng cách tự động thuê thêm công nhân khi hàng đợi tăng kích thước .

+0

Tuyệt vời. Cảm ơn. –