0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wheneverのタイムゾーン適用

Last updated at Posted at 2024-04-01

はじめに

Railsアプリケーション開発時に、Whenever gemを使用してCronジョブをスケジューリングすることは非常に一般的です。しかし、サーバーのタイムゾーンとアプリケーションのタイムゾーン設定が異なる場合がよくあります。このような状況でWhenever gemを使用する際にタイムゾーンを適切に扱う方法について説明します。

基本設定の問題点

Railsアプリケーションでconfig.time_zoneを設定しても、Whenever gemを使用して設定したCronジョブはこのタイムゾーン設定を自動的に認識しません。例えば、アプリケーションがAsia/Tokyoに設定されている場合、毎日9時30分にジョブをスケジューリングするためには、サーバーのタイムゾーン設定に合わせて時間を調整する必要があります。

対策

Whenever gemを使用する際にRailsアプリケーションのタイムゾーン設定を明示的に適用したい場合は、以下のようにTime.zone.parseメソッドを使用してタイムゾーンを処理することができます。

require File.expand_path('../config/environment', __dir__)

every :day, :at => Time.zone.parse('09:30am').utc do
  rake "leave_reminder:daily"
end

この方法は、Railsアプリケーションのタイムゾーン設定をCronジョブに適用したいときに役立ちます。このようにタイムゾーンを明示的に指定すると、Wheneverがスケジューリングする際にそのタイムゾーンを考慮してCronジョブを登録します。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?