ActiveJob 背景工作
可以進到終端機輸入rails g
看看有什麼指令可以使用。發現有一個job
。可以透過它產生一個背景工作來做些事情。
那我們就來產生一個背景工作,並給它命名VoteMail
打開VScode,來確認看看是否jobs的地方有新增一個背景工作。
再回到candidate_controller.rb
投票的function裡面,把原本那行寄信工作的code搬家,搬到個剛建立的背景工作vote_mail_job.rb
裡面。
回到 candidate_controller.rb
增加一行VoteMailJob.perform_later
這時候重新啟動rails server。發現現在點擊 vote
之後,馬上就顯示 Voted!!!
。
這個做法就是讓那個較花時間的工作先存放到背景去,等有空的時候再來執行它。
參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)