问题
I'm building a Rails project that has a cron-type job that I'm managing with Rufus Scheduler. I have two questions about how to set this up appropriately in Rails:
- Where's the best place to put the job's code?
- Where should I place the Rufus code to schedule the job? How should I kick it off?
回答1:
To control the scheduler I would create a config/initializers/task_scheduler.rb
:
task_scheduler = Rufus::Scheduler.start_new
task_scheduler.every("1m") do
Something.to_do! # Do something every minute!
end
Now for the Something.to_do
code, that sort of depends on what it does. Perhaps it is a data model and it should go in the app/models
directory, but if it is something more generic you might want to place it in lib/
. If you wind up with a number of scheduled tasks you might want to create a app/scheduled_tasks
directory, but that might be overkill for just one file.
来源:https://stackoverflow.com/questions/2059117/where-should-i-put-background-processes-in-rails