Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > выполнение экшена в определённое время


Автор: masterkot 8.8.2012, 10:13
Добрый день.
Я пытаюсь заставить выполняться функцию в определённое время, но никак неполучается.
Это время записывается в базу данных при создании клиента, и должно использоваться в контроллере, чтобы в это время срабатывал редирект.
Что-то типа этого:
Код

def create
@user = User.find(params[:user_id])
@client = @user.clients.create(params[:client])
if @client.save
 redirect_to user_clients_path(@user)
      else
 render :action => 'new'
      end
Timeout(@client.event_time) 
    redirect_to :controller => :some_controller, action => some_action
end


я не уверен насчет строчки с таймаутом, она просто для примера.
Есть у кого-нибудь идеи как это реализовать? несколько форумов упорно молчат по этому вопросу(

Автор: Rikkit 8.8.2012, 16:22
Если вам просто надо выполнять действия независимо от клиента, то создайте задачу (task) и пропишите ее в cron

Автор: masterkot 8.8.2012, 22:06
Цитата(Rikkit @ 8.8.2012,  16:22)
Если вам просто надо выполнять действия независимо от клиента, то создайте задачу (task) и пропишите ее в cron

Спасибо, можно ли поподробней описать этот процесс?
Я читал о whenever и delayed_job, но мне катастрофически непонятно как они работают.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)