Closed isaacpompa closed 9 years ago
@isaacpompa creo que deberías de crear un worker que se encargue de enviar los emails de forma asíncrona. Por que como esta ahorita, si tienes 500 usuarios en una red, vas a encolar 500 trabajos pendientes en sidekiq, cuando lo ideal es que solo sea uno.
@emilianork ya quedó con un solo Worker.
@isaacpompa no veo como se manda de forma asíncrona con un Worker de Sidekiq. Según yo lo único que hiciste fue setear el logo.
@emilianork tiene razón no hay ningún worker ni nada, revisa la documentación de sidekiq
@emilianork hice rebase y las líneas quedaron igual. Como tal está en el ManagersController#mailer_deliver
la línea empieza con current_network.delay
@isaacpompa lo que usa esa linea es la gema delayed_jobs
, en este link lo explican Queuing Jobs.
Para usar Sidekiq
debes de crear un worker
en la carpeta app/wokers
y este debe ser mandado a llamar de la siguiente forma SomeWorker.perform_async(args..)
Falso @emilianork me basé en: http://blog.remarkablelabs.com/2013/01/using-sidekiq-to-send-emails-asynchronously
@isaacpompa eso lo agrega Sidekiq
por default a la clase ActionMailer::Base
, ManagersController#mailer_deliver
usa current_network.delay.send_email(...)
donde current_network
es una instancia de la clase Network
.
Por otro lado, creo que la linea current_network.delay.send_email(..)
falla por que borraste handle_asynchronously :send_email, priority: 20, run_at: Proc.new{Time.zone.now}
, código que agrega el método send_mail
a delay
.
En el mismo link que me pasaste viene como hacer tests de eso. ¿Por que no los implementas?
@isaacpompa: Ese mailer no esta listo para usar Sidekiq, no puedes pasar objetos complejos como parámetros. Revisa esta wiki: Best-Practices#1-make-your-job-parameters-small-and-simple
@isaacpompa: No veo en ningún lado que uses los Delayed Extensions de Sidekiq, ¿Puedes hacer referencia donde están?
@isaacpompa: implementa los tests que menciona @emilianork
@babasbot implemento los test.
En la línea 47 de ManagersController#mailer_deliver
current_network.delay.send_email ...
@emilianork no faya si quito handle_asynchronously ...
:+1:
Closes #389