2011-09-20 10 views
5

Vorrei sapere come dovrei procedere con questo progetto. Ho bisogno di inviare e-mail alle persone una volta alla settimana. Tuttavia, questo deve essere generato automaticamente e inviato ad una certa ora ogni settimana. Quanto è difficile codificare? Ho bisogno di sapere se ci sono libri che potrebbero essere d'aiuto o se qualcuno di voi potrebbe dirigerti. Deve essere programmato usando il rubino su rotaie. Quindi c'è un servizio web e un database integrato. CheersRuby on rails - è necessario inviare messaggi alle e-mail in un determinato momento alla settimana

+5

Perché questo tag email-spam. Stai cercando di generare spam? –

risposta

5

Perché questo complesso?

Tutto ciò che serve è pianificare un lavoro. È possibile utilizzare Delayed::Job per esempio. Delayed::Job ti dà la possibilità di pianificare un processo in un momento determinato utilizzando il simbolo run_at in questo modo:

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

Il tuo lavoro è una classe che deve implementare il metodo perform. All'interno di questo metodo puoi chiamare il mailer responsabile dell'invio dell'e-mail. scheduled_at può essere memorizzato nel database e aggiornato ogni volta che viene eseguito il metodo perform.

3

È possibile utilizzare una gemma come whenever per pianificare attività ricorrenti.

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

forse si può provare 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') 
Problemi correlati