2016-04-27 4 views
1

У меня есть следующий метод класса, который я вызываю через любой камень. Если я вызову метод из консоли Rails, он отлично работает. Если он вызывается из любого задания cron, первые два регистрационных вызова отображаются в файле журнала, поэтому я знаю, что он называется okay. Однако третьего нет.Всякий раз, когда камень не распознает экземпляр класса

кажется, что выполнение метода, как хрон распознает класс, но не подключен к базе данных, чтобы получить отдельные экземпляры «Message»

Любая помощь ценится

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 

ответ

1

Когда я запустите команду «всякий раз» в среде разработки, чтобы она могла фактически подключиться к базе данных разработки, она отлично работает :-)

всякий раз, когда --update-crontab --set environment = 'development'