Question

Je développe une application Ruby on Rails qui doit permettre à l'utilisateur de télécharger simultanément 16 images de haute qualité à la fois.

Cela signifie souvent quelque part autour de 10-20 méga-octets (parfois plus), mais il est le nombre de connexions qui deviennent la question la plus pertinente.

Les images sont envoyées à Amazon S3 de Paperclip, qui ouvre et ferme malheureusement une nouvelle connexion pour chacun des 16 fichiers. Inutile de dire que je dois déplacer le système pour exécuter les processus d'arrière-plan pour garder mon serveur web de se bloquer comme il est déjà sans trafic.

Ma question est, de tous les systèmes à base de Rails à utiliser pour les travaux de fond (Starling, BackgroundRb, Spawn, etc.), s'il y a un qui pourrait correspondre à la facture pour ce scénario mieux que les autres (I » m de nouveau à la construction d'un système en le fond de toute façon, de sorte que tous les systèmes disponibles sont tout aussi nouveau pour moi)?

Était-ce utile?

La solution

Il ne manque pas de plug-ins de rails pour faire du traitement async, et essentiellement tous fonctionnent très bien. Personnellement, j'aime de Delayed Job 's api mieux.

Je ne voudrais pas utiliser Starling ou d'autres daemons de file d'attente réelle depuis cette tâche en utilisant la base de données pour stocker tout état nécessaire devrait être très bien.

Autres conseils

Cela peut aider!

http : //aaronvb.com/blog/2009/7/19/paperclip-amazon-s3-background-upload-using-starling-and-workling

EDIT:

Il est impossible, par un formulaire de multipart HTML normale, pour envoyer des fichiers à l'arrière-plan. Ils doivent être fait par cette demande. Si vous cherchez un moyen de contourner cela, vous pouvez essayer SWFUpload puis une fois que cela est fait appel à un processus d'arrière-plan pour gérer les téléchargements Amazon S3.

scroll top