我想知道我应该如何处理这个项目。我需要每周向人们发送一次电子邮件。但是,必须自动生成并在每周的特定时间发送。代码有多难?我需要知道如果有任何书籍可以提供帮助,或者你是否有人可以指导我。它必须使用ruby在轨道上进行编程。因此,集成了Web服务和数据库。干杯
答案 0 :(得分:5)
为什么这很复杂?
您所需要的只是安排工作。例如,您可以使用Delayed::Job
。 Delayed::Job
可让您使用run_at
符号在特定时间安排作业:
Delayed::Job.enqueue(SendEmailJob.new(...), :run_at => scheduled_at)
您的工作是必须实施perform
方法的课程。在此方法中,您可以致电负责发送电子邮件的邮件程序。 scheduled_at
可以存储在数据库中,并在每次perform
方法运行时更新。
答案 1 :(得分:3)
对于书籍,Rails Recipes的第6章专门用于电子邮件。本书Advanced Rails Recipes有关于异步处理和电子邮件的章节。还有railscast致力于sending email并撰写custom deamons。
答案 2 :(得分:3)
您可以使用像whenever
这样的宝石来安排重复任务。
every :sunday, :at => '12pm' do
runner "User.send_emails"
end
答案 3 :(得分:1)
也许你可以尝试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')