質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

1700閲覧

Railsの定期処理(whenever)について

begenner

総合スコア79

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/09/27 07:30

現在railsアプリをawsにデプロイして動作の確認をしています。
gem 'whenever'
を使って1時間ごとにデータベースをリセット、初期化する設定をしたつもりですが

  • MySQLで追加したデータが削除されていない

ためwheneverの設定がうまく言っていないことが確認されます。
aws-cli上でbundle exec crontab -eコマンドを実行するとタスクは作られているのですがうまくいかない原因が分かりません(m_ m)
わかる方がいらっしゃれば教えていただきますようよろしくお願いいたします(m
_m)

###エラー内容

  • whenevercronに登録したはずのタスクが実行されていない

###期待する動作

  • wheneverに登録した処理が毎時実行されるようにしたい

###動作環境
OS:mac
Ruby:2.3.5
Ruby on Rails: 4.2.5
MySQL: 5.7.18
whenever (0.10.0)
###参考サイト

###試したこと
aws-cli上で

bash

1# 1. アプリの階層へ移動 2cd /var/www/rails/myapp 3 4# 2. whenever設定用コマンドの実行 5bundle exec wheneverize . 6[skip] ./config/schedule.rb already exists 7[done] wheneverized! 8 9# 3. 下記の「該当ソースコード」のapp/config/schedule.rb を設定、保存 10# 4. 設定の確認 11bundle exec whenever 120 * * * * /bin/bash -l -c 'cd /var/www/rails/myapp && RAILS_ENV=production bundle exec rake db:migrate:reset --silent >> log/crontab.log 2>&1' 13 140 * * * * /bin/bash -l -c 'cd /var/www/rails/myapp && RAILS_ENV=production bundle exec rake db:seed --silent >> log/crontab.log 2>&1' 15 16# 5. cronにデータを反映 17bundle exec whenever --update-crontab

###該当のソースコード
Gemfile.rb

ruby

1gem 'whenever', require: false

app/config/schedule.rb

ruby

1require File.expand_path(File.dirname(__FILE__) + "/environment") 2set :output, 'log/crontab.log' 3set :environment, :production 4env :PATH, ENV['PATH'] 5 6every 1.hours do 7 rake 'db:migrate:reset' 8 rake 'db:seed' 9end 10 11#every 1.day, at:'10:30 am' do 12# rake 'db:migrate:reset RAILS_ENV=production' 13# rake 'db:seed RAILS_ENV=production' 14#end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takumiabe

2018/09/28 10:18

サーバー上の log/crontab.log の中身はわかりますか?
begenner

2018/09/29 00:18

コメントいただきありがとうございます。log/crontab.logの中身をcatコマンドで確認してみましたが何も表示されませんでした(m__m)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問