J'utilise delayed_jobs avec mongomapper. Cependant, il est lent lors de la récupération des enregistrements delayed_jobs (environ 500 000 enregistrements).delayed_jobs avec mongomapper est lent
Je cours pour créer des index { locked_by: -1, priority: 1, run_at: 1 }
, mais cela n'aide pas.
Je ne sais vraiment pas quels index pour améliorer la requête. Chaque récupération prend environ 2 secondes.
Voici le journal de MongoDB:
Tue Dec 13 09:52:38 [conn497] query api_production.$cmd ntoreturn:1 command: { findandmodify: "delayed_jobs", query: { run_at: { $lte: new Date(1323769957289) }, failed_at: null, $or: [ { locked_by: "host:ip-10-128-145-246 pid:26157" }, { locked_at: null }, { locked_at: { $lt: new Date(1323769057289) } } ] }, sort: { locked_by: -1, priority: -1, run_at: 1 }, update: { $set: { locked_at: new Date(1323769957289), locked_by: "host:ip-10- 128-145-246 pid:26157" } } } reslen:699 1486ms