rails new myblog
rails generate scaffold Post title:string body:text && rails db:migrate
rails generate migration AddPublishedFlagToPosts published:boolean && rails db:migrate
rails generate job publish_posts_job
def index
@posts = Post.where(published: true)
end
class PublishPostsJob < ApplicationJob
queue_as :default
after_perform :repeat
def perform
# Find an unpublished post
@post = Post.where(published: false).sample
# Publish it
@post.update(published: true)
end
private
def repeat
self.class.set(wait: 5.hours).perform_later
end
end
% rails console
irb(main):001:0> PublishPostsJob.perform_now