2011-03-26 1 views
1

J'ai une méthode qui doit gérer un grand nombre de demandes. J'utilise Rack pour ça.Comment facilement retarder l'insertion de requête dans Rails 3 application

Ce qu'il fait est qu'il reçoit des paramètres et crée une tâche delayed_job:

def self.call(env) 
    ... 
    Delayed::Job.enqueue(....) 

Pour optimiser davantage, je pensais que ce serait bien de faire au-dessus de la ligne se produit en arrière-plan (peut-être la mise en cache dans mémoire pour insérer un peu plus tard l'entrée Delayed job dans DB et augmenter la réactivité de l'application Rack).

Un moyen facile de retarder la mise en file d'attente tâche tâche différée pour enregistrer quelques millisecondes?

Le point de banc actuel est de 12 ms/Demande, donc même quelques millisecondes vous aideront.

Répondre

0

Si vous utilisez workling/starling au lieu de delayed_job, vous pouvez utiliser Memcached à la place de la base de données.

https://github.com/purzelrakete/workling

https://github.com/starling/starling

+0

Bonne idée, je vais considérer. Une raison pour laquelle j'utilise Delayed Job est que je me déploie sur Heroku qui l'utilise. Si j'utilise workling/starling je dois probablement déployer sur mon propre hôte – Tam

Questions connexes