Ruby on Railsで開発しているのですが、データベースと比較して、時間が来たら自動で削除するということをしたいと思っています。
調べたところ、wheneverというgemを使えばできるようだったのですが、やり方がよくわからず、うまく反映しません。
ruby
1`schedule.rb` 2 3require File.expand_path(File.dirname(__FILE__) + "/environment") 4 5rails_env = Rails.env.to_sym 6rails_root = Rails.root.to_s 7 8# environment は設定しないと production になってしまう 9set :environment, rails_env 10set :output, "#{rails_root}/log/cron.log" 11 12 13every 2.minutes do 14 runner 'Hoge.hoge' 15end 16
ruby
1`lib/hoge.rb` 2 3def hoge 4 @tweets = Tweet.all 5 @tweets.each do | tweet | 6 if tweet.updated_at < Time.now 7 tweet.destroy 8 end 9 end 10 end 11
bundle exec whenever --update-crontabを実行すると
[write] crontab file updatedとなり、
crontab -l では
Begin Whenever generated tasks for: /Users/xxxx/projects/xxxx/config/schedule.rb at: 2018-02-28 14:50:45 +0900 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /Users/xxx/projects/xxx && bundle exec bin/rails runner -e development '\''Hoge.hoge'\'' >> /Users/xxx/projects/xxx/log/cron.log 2>&1'
となっており、できているのかと思ったのですが、何も起きません。
lib/hoge.rb
というファイル名がおかしいのか、
そもそもの記述が違うのかもわかっていないので、
詳しい方是非お願いします!!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/01 04:47
退会済みユーザー
2018/03/01 04:54
退会済みユーザー
2018/03/01 06:08
退会済みユーザー
2018/03/01 07:00
2018/03/01 14:41
2018/03/01 14:47
退会済みユーザー
2018/03/02 01:18
退会済みユーザー
2018/03/02 01:19
2018/03/02 03:12
2018/03/02 03:19
退会済みユーザー
2018/03/02 04:37