Bu projeyle nasıl başlayacağımı bilmek isterim. İnsanlara haftada bir e-posta göndermem gerek. Ancak bu, her hafta otomatik olarak oluşturulmalı ve belirli bir zamanda gönderilmelidir. Bu kod ne kadar zor? Yardımcı olabilecek herhangi bir kitap olup olmadığını ya da herhangi birinin beni yönlendirebileceğini bilmem gerek. Raylar üzerinde yakut kullanılarak programlanmalıdır. Dolayısıyla bir web servisi ve veritabanı entegre edilmiştir. ŞerefeRaylar üzerinde Ruby - haftada belirli bir zamanda e-postalara mesaj göndermeniz gerekir
cevap
Bu neden karmaşık?
Tek ihtiyacınız olan şey bir iş zamanlamak. Örneğin, Delayed::Job
'u kullanabilirsiniz. Delayed::Job
böyle run_at
sembolü kullanarak belirli bir zamanda bir işi planlamak için imkanı verir:
Delayed::Job.enqueue(SendEmailJob.new(...), :run_at => scheduled_at)
İşiniz perform
yöntemi uygulamak zorunda olduğu bir sınıftır. Bu yöntemde e-postayı göndermek için sorumlu maili arayabilirsiniz. scheduled_at
veritabanı üzerinde saklanabilir ve perform
yönteminin her çalıştırıldığında güncellenir.
Kitaplar için, Rails Recipes'un 6 nolu bölümü e-postaya ayrılmıştır. Advanced Rails Recipes kitabı, Eşzamansız İşleme ve e-posta ile ilgili bölümlere sahiptir. Ayrıca sending email'a ve custom deamons yazarak railscast adamıştır.
Yinelenen görevleri zamanlamak için whenever
gibi bir mücevher kullanabilirsiniz.
every :sunday, :at => '12pm' do
runner "User.send_emails"
end
Belki 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')
neden bu etiketli bir e-posta spam olduğunu deneyebilirsiniz. Spam oluşturmaya mı çalışıyorsunuz? –