0

Это мой первый раз, используя ActiveJob, поэтому я все еще обволакиваю детали. У меня есть форма, которая при сохранении с помощью кнопки Execute выполняет некоторые вызовы API, которые занимают очень много времени.Rails 4.2: активное задание после перенаправления

Я бы хотел, чтобы страница перенаправлялась на индекс без долгого ожидания. Вот мой контроллер создадим действие ..

campaigns_controller.rb

def create 
    @campaign = Campaign.new(campaign_params) 

    if @campaign.save 

     flash[:success] = "Campaign Successfully Saved!" 
     redirect_to campaigns_path 

     if params[:save_type] == 'Execute' 
      FolderPushJob.perform_later(@campaign) 
     end 

    else 
     flash[:error] = "There was a problem launching your Campaign." 
     redirect_to new_campaign_path 
    end 
    end 

... и моя работа в это младенческой стадии

folder_push_job.rb

class FolderPushJob < ActiveJob::Base 
    queue_as :default 

     def perform(campaign) 
     ...some api calls.. 
     end 

Каким будет лучший способ сделать эту работу?

UPDATE

Один вопрос, который я обнаружил, что у меня не было бэкенд для работы, так что я установил delayed_job камень.

конфигурации/application.rb

config.active_job.queue_adapter = :delayed_job 

Теперь он перенаправляет и не выполняет работу на всех.

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

ответ

0

Я был под впечатлением, что я мог бы создать замедленную работу установки для запуска в определенное время и время развивая, наблюдайте, как он работает. Похоже, что в режиме разработки я должен вручную запускать задания. Согласно этому блогу ..

Simple Steps to Implement Delayed Job in Rails

Запуск задания обработки Есть два способа сделать это.

Если приложение находится в режиме разработки, мы вместо этого использовали бы следующую команду rake .

rake jobs:work 

Если приложение находится в рабочем режиме, то предпочтительно использовать «delayed_job» сценарий.

Я также узнал, что это задание rake можно запустить рядом с сервером. Продолжайте работать, и он будет выполнять задания при взаимодействии с вашим приложением.

0

Вы не выполнить работу до redirect_to, потому что ваш путь рельсов выполнить переадресацию и никогда не вызывать работу

+0

Заказ redirect_to не изменил ситуацию, все еще получая тот же результат. Работа существует независимо, она просто не запускается. – shroy

 Смежные вопросы

  • Нет связанных вопросов^_^