2011-09-20 30 views
5

Me gustaría saber cómo debo trabajar con este proyecto. Necesito enviar correos electrónicos a personas una vez a la semana. Sin embargo, esto tiene que ser generado automáticamente y enviado a una hora determinada cada semana. ¿Qué tan difícil es esto para codificar? Necesito saber si hay libros que podrían ser de ayuda o si alguno de ustedes podría dirigirme. Tiene que ser programado usando Ruby on Rails. Por lo tanto, hay un servicio web y una base de datos integrados. CheersRuby on rails: necesito enviar mensajes a correos electrónicos en un momento determinado de la semana

+5

Por qué es esto etiquetado de correo electrónico spam. ¿Estás tratando de generar spam? –

Respuesta

5

¿Por qué es esto complejo?

Todo lo que necesita es programar un trabajo. Puede usar Delayed::Job por ejemplo. Delayed::Job le da la posibilidad de programar un trabajo en una hora concreta utilizando el símbolo run_at así:

Delayed::Job.enqueue(SendEmailJob.new(...), :run_at => scheduled_at)  

Su trabajo es una clase que tiene que implementar el método perform. Dentro de este método puede llamar al programa de correo responsable de enviar el correo electrónico. El scheduled_at se puede almacenar en la base de datos y actualizarse cada vez que se ejecuta el método perform.

3

Puede usar una gema como whenever para programar tareas recurrentes.

every :sunday, :at => '12pm' do 
    runner "User.send_emails"  
end 
1

Tal vez usted puede intentar clockwork

require 'clockwork' 
include Clockwork 

handler do |job| 
    puts "Running #{job}" 
end 

every(10.seconds, 'frequent.job') 
every(3.minutes, 'less.frequent.job') 
every(1.hour, 'hourly.job') 

every(1.day, 'midnight.job', :at => '00:00') 
Cuestiones relacionadas