有沒有人在使用蝦時在渲染/構建過程之前啓動文件流的示例?在渲染之前在Rails中傳輸來自蝦/ Prawnto的輸出
這種情況是,我有大約350頁的報告需要大約60秒才能在我自己的工作站上運行,但是當它移動到生產(EC2)時,報告運行時間超過300秒,當它完成時它不會將PDF發送到瀏覽器。
即使60秒很長時間沒有任何用戶反饋,但300即使您等待,也不起作用。我一直在尋找的是在渲染過程之前開始下載文件(我正在使用Prawnto的.pdf.prawn視圖),這樣至少用戶可以在處理過程中看到正在發生的事情,但是如此遠遠無法做到這一點。我發現的所有示例和指南都在渲染完成後開始下載,並在漫長的等待之後開始下載。
如果一切都失敗了,我會看看調度報告,但理想情況下用戶將能夠查看報告,然後返回並進行更改並再次運行,這顯然不允許進行調度。
與Prawnto一起顯示的代碼並不多,因爲它全部只是視圖中的PDF佈局,並且在控制器中通過此調用進行調用。我嘗試了send_file,並將PDF佈局移動到控制器上,以便在沒有Prawnto的情況下運行它,但是所有更改似乎都給出了相同的結果 - 在等待很長時間後,PDF將發送到瀏覽器。
在這一點上我沒有任何想法,並會感激任何想法!
respond_to do |format|
format.pdf {
prawnto :prawn => {:page_layout => :portrait, :skip_page_creation => true}, :inline => false
render :layout => false
}
也許相關的是,我使用乘客進行生產,與Rails 2.3.9和對蝦0.11.1.pre。 – ChriX 2011-03-23 11:34:08
我不確定試圖在300秒內流式傳輸PDF比300秒等待好得多。用戶是否可以觸發異步報告生成,然後在完成後向用戶發送電子郵件通知?或者,您可以將其「分塊」成30-40頁左右的組,並讓用戶選擇一次生成一個部分。 – 2011-03-23 12:38:48