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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

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

解決済

[Rails]wheneverがうまくいかない

s_diff
s_diff

総合スコア0

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

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

1回答

0評価

0クリップ

1884閲覧

投稿2019/04/08 07:45

編集2022/01/12 10:58

wheneverを使って以下のように定期処理を実装しています。

ruby

# config/schedule.rb set :output, 'log/crontab.log' every 1.hour , roles: %i(app) do rake '-s sitemap:refresh RAILS_ENV=production' end every :monday, :at => '10:30 am' do runner "SampleMailer.inform_sample_on_monday.deliver_now" end

ruby

# Capfile require "capistrano/setup" require "capistrano/deploy" require "capistrano/scm/git" install_plugin Capistrano::SCM::Git require "capistrano/bundler" require "capistrano/rails" require "capistrano/rails/assets" require "capistrano/rails/migrations" require "capistrano/rbenv" require "capistrano3/unicorn" require "capistrano/sidekiq" require "capistrano/upload-config" require 'capistrano/rails/console' require "whenever/capistrano" Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

このタスクが本番環境で実行されず、その原因がなんなのかわかりません。

###試したこと
以下のようにコマンドを打ってwheneverのタスクを確認しましたが、問題がわかりませんでした。

$ bundle exec whenever

0 * * * * /bin/bash -l -c 'cd /Users/username/Desktop/job/myapp && RAILS_ENV=production bundle exec rake -s sitemap:refresh RAILS_ENV=production --silent >> log/crontab.log 2>&1'

30 10 * * 1 /bin/bash -l -c 'cd /Users/username/Desktop/job/myapp && bundle exec bin/rails runner -e production '''SampleMailer.inform_sample_on_monday.deliver_now''' >> log/crontab.log 2>&1'

[message] Above is your schedule file converted to cron syntax; your crontab file was not updated.
[message] Run `whenever --help' for more options.

$ crontab -l

Begin Whenever generated tasks for: /Users/username/Desktop/job/app/config/schedule.rb at: 2019-04-08 10:03:21 +0900
0 * * * * /bin/bash -l -c 'cd /Users/username/Desktop/job/myapp && RAILS_ENV=production bundle exec rake -s sitemap:refresh RAILS_ENV=production --silent >> log/crontab.log 2>&1'

5 10 * * 1 /bin/bash -l -c 'cd /Users/username/Desktop/job/myapp && bundle exec bin/rails runner -e production '''SampleMailer.inform_sample_on_monday.deliver_now''' >> log/crontab.log 2>&1'

End Whenever generated tasks for: /Users/username/Desktop/job/myapp/config/schedule.rb at: 2019-04-08 10:03:21 +0900

$ cap
Stage not set, please call something such as cap production deploy, where production is a stage you have defined.

###実現したいこと
なぜwheneverのタスクが本番環境でうまくいかないのかを知りたいです。
なにかご教示いただけることがあれば、何卒よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

ryochin
ryochin

2019/04/08 23:58

cap の実行ログと、本番環境上での crontab -l の結果を頂けますか?
s_diff
s_diff

2019/04/09 00:04

ご回答ありがとうございます。 ご指摘のログを追記しました。 ご確認お願いいたします
ryochin
ryochin

2019/04/09 00:07

失礼しました、実際に cap production deploy 等でサーバにデプロイを行った際の実行ログをお願いできればと。
s_diff
s_diff

2019/04/09 02:52

こちらこそ失礼致しました。 cap production deployのwheneverに関係したログを追記しました。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

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