erkennt, habe ich die folgende Klassenmethode, die ich durch den Whatever-Edelstein aufrufen. Wenn ich die Methode von der Rails-Konsole aus anrufe, funktioniert es perfekt. Wenn es aus dem Cron-Job "Whatever" aufgerufen wird, werden die ersten beiden Logger-Aufrufe in der Protokolldatei angezeigt. Daher weiß ich, dass es OK heißt. Das dritte jedoch nicht.Immer wenn Juwel nicht Instanz der Klasse
Es scheint, dass die Methode als cron-Job die Ausführung der Klasse erkennt, ist aber nicht mit der Datenbank verbunden für die einzelnen Instanzen „Message“ abrufen
Jede Hilfe
def self.check_saved_messages
#Code to test the method with the 'whenever' gem.
my_logger.warn("Scheduler fired at #{Time.now} Logger 1")
# 1. Grab all messages that have not been sent.
@messages = Array.new #Creates new array to store messages in.
#Stores all messages that have not been sent in @messages array.
my_logger.warn("Scheduler fired at #{Time.now} #{Message.all} Logger 2") #Works as Cron job
my_logger.warn("Scheduler fired at #{Time.now} #{Message.last} Logger 3") #Doesn't work as cron job
Message.where(sent: false).find_each do |message|
@messages.push(message)
end
# 2. Iterate through them and find the ones where the time has past to send.
current_time = Time.now.utc
#Send messages that have a send_time earlier than current time.
@messages.each do |message|
if current_time.to_i > message.send_time.to_i
message.send_message
message.send_time # Testing (working)
end
end
end