hi
Tôi sẽ thiết lập một trang web đường ray, sau một số đầu vào người dùng ban đầu, một số phép tính nặng được thực hiện (thông qua c-extension thành ruby, sẽ sử dụng đa luồng). vì những tính toán này sẽ tiêu thụ gần như tất cả thời gian cpu (bộ nhớ quá), nên không bao giờ có nhiều hơn một phép tính chạy cùng một lúc. tôi cũng không thể sử dụng các công việc nền (không đồng bộ) (như với công việc bị trì hoãn) vì đường ray phải hiển thị kết quả của phép tính đó và trang web sẽ hoạt động mà không có javascript.
vì vậy tôi cho rằng tôi cần một quá trình riêng biệt trong đó tất cả các trường hợp đường ray phải xếp hàng các yêu cầu tính toán của họ không phải chờ câu trả lời (có thể là thông báo lỗi nếu hàng đợi đầy), loại trình quản lý công việc đồng bộ.Ruby/Rails quản lý công việc đồng bộ
có ai biết nếu có đá quý/plugin có chức năng như vậy không? (nanite dường như khá thú vị đối với tôi, nhưng dường như chỉ là không đồng bộ, vì vậy các trường hợp đường ray sẽ không biết khi nào việc tính toán kết thúc. Có đúng không?)
ý tưởng khác là viết của riêng tôi bằng cách sử dụng phân phối ruby (drb), nhưng tại sao lại phát minh ra bánh xe nếu nó đã tồn tại?
bất kỳ trợ giúp nào sẽ được đánh giá cao!
EDIT: vì mẹo của zaius tôi nghĩ rằng tôi sẽ có thể thực hiện việc này một cách không đồng bộ, vì vậy tôi sẽ thử resque.
rằng điều metarefresh sẽ là có thể, nhưng có người sử dụng để tải lại trang theo cách thủ công nếu tính toán không được hoàn thành sau khi làm mới không quá thân thiện trong mắt tôi. atm tôi không mong đợi quá nhiều yêu cầu cùng một lúc, do đó, chặn các chủ đề web không phải là một mối quan tâm lớn. nhưng bạn nói đúng, đó không phải là cách hay để làm điều đó. – user573335
Bạn có thể thực hiện làm mới meta bao nhiêu lần tùy thích - nếu công việc không hoàn tất sau lần làm mới đầu tiên, hãy hiển thị cho họ trang làm mới giống nhau và chỉ hiển thị trang cuối cùng khi công việc được thực hiện. – zaius
tốt, tôi là một chút do dự về nó, nhưng tôi càng nghĩ về nó càng có vẻ như giải pháp tốt hơn để làm điều đó một cách không đồng bộ, ít nhất là về lâu dài. có hàng đợi công việc mà tôi có thể hỏi về thời gian nhiệm vụ dự kiến (từ một chuỗi web) và có thể trả về một thông báo lỗi cho chuỗi web nếu có quá nhiều công việc xếp hàng không? – user573335