Zayyana Khoir pada 24 Juli 2019

Mohon bantuannya kawan...
Di app yang sedang berjalan ada penambahan scheduler untuk tiap jamnya mengupdate status gps di table profile. Saya menggunakan tasks untuk menjalankan schedulernya, saat menjalankan rake task di development local databasenya terupdate, namun ketika setelah di deploy dan menjalankan rake task database tidak terupdate. Adakah yang salah di kodenya ?
Spec app menggunakan Rails 4, gem whenever, capistrano.

Terimakasih sebelumnya.

schedule.rb

every :hour do
rake "profile_update:inactive"
end

profile_update.rake

namespace :profile_update do
desc "Update gps status profiles"
task inactive: :environment do
Profile.update_profiles
end
end

profile.rb

def self.update_profiles
@profile_short = Heartrate.select('Date_Format(TIMEDIFF(now(), MAX(heartrates.start_time)), "%H") selisih_date, profiles.id, MAX(heartrates.start_time) start_time').joins(:profile).where('heartrates.start_time BETWEEN ? AND ?', DateTime.now.end_of_day-1, DateTime.now.end_of_day).where('profiles.gps_status = 1').group(:profile_id).order('profiles.id ASC')
if @profile_short.present?
@profile_short.each do |profile|
if profile.selisih_date.to_i < 1
cek_safety = SafetyAlert.select('Date_Format(TIMEDIFF(now(), created_at), "%H") selisih_date_safety').where(profile_id: profile.id).where('created_at BETWEEN ? AND ?', profile.start_time, DateTime.now.end_of_day).last
if cek_safety.present?
else
if profile.selisih_date.to_i >= 1
Profile.where(id: profile.profile_id).update_all(gps_status: 0)
end
end
else
cek_safety = SafetyAlert.select('Date_Format(TIMEDIFF(now(), created_at), "%H") selisih_date_safety').where(profile_id: profile.id).where('created_at BETWEEN ? AND ?', profile.start_time, DateTime.now.end_of_day).last
if cek_safety.present?
if cek_safety.selisih_date_safety.to_i >= 1
Profile.where(id: profile.id).update_all(gps_status: 0)
end
else
Profile.where(id: profile.id).update_all(gps_status: 0)
end
end
end
end
end

Agung Setiawan pada 24 Juli 2019

Lanjut di grup alumni course Ruby on Rails ya hehe