世界を旅して暮らしたい放浪エンジニアブログ

Rails、cronでバッチを開発するなら「Whenever」

railsにwheneverをインストールしセットアップしていきます。

[ 目次 ]

はじめに

こんにちは、香港に住んでいるWEBデベロッパーのなかむ(@nakanakamu0828)です。

この記事は過去に運用していたブログからの移行記事になります。
Railsのプロジェクトに、javan/wheneverを組み込んでいきます。
定期バッチを利用する為に、wheneverを利用しています。

wheneverのインストール

Gemfileに以下の設定を追加

# Gemfile
gem 'whenever', require: false

bundle installコマンドでインストール

$ bundle install
or
$ bundle install --path=vendor/bundle

※ 環境に合わせてプロジェクト配下にインストールするかどうかでコマンドを選択してください。

設定ファイルの作成

以下のコマンドを実行することで、設定ファイルが作成されます。

$ bundle exec wheneverize .

./config/schedule.rbファイルが作成されたことを確認してください。
今回はサンプルを記載します

# config/schedule.rb
require File.expand_path(File.dirname(__FILE__) + "/environment")
rails_env = ENV['RAILS_ENV'] || :development
set :environment, rails_env
set :output, "#{Rails.root}/log/cron.log"


# 1分毎に実行
# every 1.minute do
# end

# 1分毎に実行
# every 1.hours do
# end

# 毎時間 00分に実行
#every :hour, at: 00 do
#end

# 毎日5時に実行
#every 1.day, :at => '5:00 am' do
#end

# 毎日4時半と6時半に実行
#every 1.day, at: ['4:30 am', '6:00 pm'] do
#end

# 27~31日の00:00に実行
#every '0 0 27-31 * *' do
#end

# コマンド実行例
#every 1.minute do
#  runner "MyModel.process"
#  rake "my:rake:task"
#  command "/usr/bin/my_command"
#end

cronへの反映

■ 設定を確認する

$ bundle exec whenever

■ 設定反映
□ development(開発環境)

bundle exec whenever --update-crontab

□ production(商用環境)

RAILS_ENV=production bundle exec whenever --update-crontab

■ 設定削除

bundle exec whenever --clear-crontab

前のページ

次のページ

Profile

なかむ🇭🇰Webデベロッパー

なかむ🇭🇰Webデベロッパー

香港在住4年目になるWEBエンジニアのなかむです。 現在は、LaravelやRailsを利用したWEB開発を中心にエンジニアをしています。 顧客は全て日本の企業になります。リモート開発にて各企業様の支援を行なっております

プロフィール詳細はこちら

Latest Posts