3

私は、アップロードされたファイルをユーザーから取得してボックスにプッシュするRailsアプリに取り組んでいます。問題は、API呼び出しに時間がかかりすぎるため、一部のリクエストでこれがタイムアウトになることです。このプロセスをワーカープロセスに移動したいのですが、ユーザーがファイルをアップロードしてからワーカーがジョブをキューから削除するまでの間にファイルを永続化する方法がわかりません。私が見たすべての例は、この部分をスキップするか、s3ではないAPIの使用を扱っていないようです。ファイルをデータベースに保存することを考えましたが、ボックスAPIは、ファイルの内容だけでなく、ファイルオブジェクト(curl -F @file)を想定しています。これがどのように達成されるかについての指針はありますか?パフォーマンス上の理由からsidekiqを使用したいと思っていますが、delayed_jobも問題ありません。

4

2 に答える 2

2

私たちのプロジェクトの1つで、数か月間同様の問題が発生しました。以下のリンクを参照してください。

http://mattgrande.wordpress.com/2009/08/11/delayedjob/

Paperclip、Delayed Job、S3、Heroku - アップロードされた機密ファイルの遅延処理の設計: db または s3?

また、ジョブが遅延しているペーパークリップ用の gem が 1 つあります。

https://github.com/jrgifford/delayed_pa​​perclip/

于 2012-10-24T18:42:56.560 に答える
1

一時ファイルの保存を S3 に依存したくない場合は、paperclip_database gem を検討してください。

これを使用して、delayed_job によって処理される一時ファイルをデータベースに保存します。

一時ファイルが添付されたクラスを遅延ジョブに渡すだけで準備完了です。ペーパークリップ自体と同様に、ジョブがデータベースから削除されるとすぐにファイルが削除されます。

于 2014-04-14T12:13:55.520 に答える