2011-05-16 1 views
1

Je rencontre cette exception de délai d'attente de curseur mongo. En fait, je fais un agrégateur de flux à partir de sites sociaux comme Twitter et Facebook. Je cours un cron pour aller chercher les tweets toutes les deux minutes et persister ces tweets à ma base de données locale. J'ai un autre script qui analyse les flux et extrait les informations requises et les conserve dans une autre base de données. Le problème est que l'analyseur s'exécute en continu et analyse les flux. Cependant, j'ai cette exception de timeout de curseur. J'essaie de récupérer seulement 50 tweets à la fois de la base de données locale pour l'analyse syntaxique. Il est quand même en train de lancer l'exception du curseur J'ai aussi indexé la base de données correctement. Pour info, mon serveur a un disque dur de 8 Go et un RAM de 700 Mo. Je pense que cette configuration aurait dû être suffisante pour le départ. Actuellement, j'ai seulement 60000 tweets stockés dans ma base de données dont 20000 doivent être analysés. Mais il lance toujours l'exception de temporisation du curseur en continu.Exception Mongo CursorTimeout

Toutes les suggestions.

+1

Quelle est la langue du code? Dans les pilotes Ruby et Java, vous pouvez désactiver le délai d'attente du curseur - je suis sûr que vous pouvez aussi dans d'autres. Lisez la documentation du pilote. – lobster1234

+0

Veuillez répondre à cette question et aux autres que vous avez pour les utilisateurs qui vous ont répondu. – Petrogad

Répondre

0

Si vous utilisez un pilote PHP, vous pouvez désactiver le délai d'attente pour toutes les requêtes par

MongoCursor::$timeout = -1; (-1 est pas temporisation)

Et je pense que les autres conducteurs peuvent avoir les mêmes options pour la requête. (lire le manuel)

+0

est-il vraiment sûr de supprimer totalement le timeout? – Petrogad

+0

Je ne suis pas sûr de 'totalement' sûr, mais j'ai été utilisé cette option dans l'esclave mongod sur 6 mois et il n'y avait pas de graves problèmes. (Ma requête la plus lente est d'environ 30 minutes) – lqez