[英]How to run clockwork script in production
我正在使用發條寶石。 我想每天午夜自動從comments
表中刪除所有評論。
這個app/clock.rb
腳本可以在開發環境中正常工作:
require './config/boot'
require './config/environment'
require 'clockwork'
module Clockwork
every(1.day, 'delete.comment', at: '00:00') {
Comment.destroy_all
}
end
當它在$ clockwork app/clock.rb
本地終端上運行時。
因此,我將應用程序部署到了Heroku。 稍后在終端中,我運行:
RAILS_ENV=production rails r app/clock.rb
像本SO主題中一樣,但只有輸出是:
Running via Spring preloader in process 13973
並退出以提示,並且注釋仍然存在(假定at:
哈希值已通過)。
這是我的第一個個人項目。 我的問題是如何使此腳本在生產中不間斷運行,以便每天午夜自動刪除評論?
要么
更一般的:
如何在生產中不停地運行腳本。
我讀了這個SO主題,但是答案不是很徹底,對於初學者來說,上面的第一個鏈接都不是。
您可以創建rake任務並調用表格clock.rb
every(1.day, 'name', at: '09:00') do
#Load task
Rake::Task['comment:destroy'].invoke
end
耙任務:
namespace :comment do
desc 'Destroy all comment'
task destroy: :environment do
Comment.destroy_all
end
end
感謝您的努力。 畢竟,我是通過rake任務來完成此任務的,並且沒有clockwork
寶石。 我創建了一個rake任務,將其部署到heroku,然后通過heroku Scheduler插件運行任務。 現在它正在作為后台作業運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.