Tôi đã làm việc trên một dự án đã cố gắng sử dụng DelayedJob để lên lịch các mục trong tương lai. Nó hút.
Thay vào đó tôi khuyên bạn nên sử dụng đá quý bất cứ khi nào:
http://github.com/javan/whenever
Bất cứ khi nào là một đá quý Ruby cung cấp một cú pháp rõ ràng để xác định công việc cron. Nó xuất ra cú pháp cron hợp lệ và có thể thậm chí ghi tệp crontab của bạn cho bạn. Nó được thiết kế để hoạt động tốt với các ứng dụng Rails và có thể được triển khai với Capistrano. Bất cứ khi nào hoạt động tốt cũng độc lập.
Mã trông như thế này (từ github)
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
every 1.day, :at => '4:30 am' do
runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
runner "SomeModel.ladeeda"
end
every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday
runner "Task.do_something_great"
end
Here 's video railscast về cách sử dụng nó.
Và tương ứng ASCIICast.
Tại sao/làm thế nào delay_job hút cho bạn? – sscirrus
Tôi thấy rằng các công nhân DJ bị đóng băng liên tục, và họ rất khó để tiếp tục chạy. Tôi đã chuyển sang Sidekiq và không bao giờ nhìn lại. Thật hoàn hảo. Hoạt động hoàn toàn tuyệt vời. Tôi ước rằng công ty của tôi sẽ chia tiền để có thêm tính năng phụ của Sidekiq Pro chỉ vì nó rất tuyệt vời. – cpuguy83
Nó không hút. Tôi cũng đã ở đó. – OneChillDude