2016-02-01 4 views
0

Я работаю на простой функции:Информация Обновление на странице без перезагрузки

  • Пользователь вводит свой номер телефона
  • Я посылаю код подтверждения с помощью TwilioAPI
  • Они перенаправлены на страницу, где они пишут код, который они получили

Отправка осуществляется работниками Sidekiq. Я использую драгоценный камень: https://github.com/utgarda/sidekiq-status, чтобы проверить статус задания.

job_id = MyJob.perform_async(*args) 

Sidekiq::Status::queued?  job_id 
Sidekiq::Status::working?  job_id 
Sidekiq::Status::complete? job_id 
Sidekiq::Status::failed?  job_id 

Таковы некоторые государства задание. Что я хочу сделать, это показать, что происходит с конечным пользователем на странице «Введите код» без них того, чтобы перезагрузить страницу.

Так что, когда я проверяю

Sidekiq :: Статус :: закончен? 123

и работа завершена, они увидят галочку и слово «Отправлено».

но если статус

Sidekiq :: Статус :: не удалось? 123

тогда они будут уведомлены о новых попытках.

Как проверить состояние и отобразить результаты (прогресс) на одной странице в режиме реального времени?

ответ

1

Вы можете:

  • проста: имеет идентификатор задания вернулся в клиентской JavaScript, сделать действия статуса, который будет возвращать статус задания по его идентификатору и опрашивать его каждые N секунд в JavaScript (но не слишком часто, так как это может привести к ненужной нагрузки на сервер)
  • более «realtimish»: настроить некоторые кометы сервера, как private_pub и есть ваша работа толкать свой статус клиента на самом старте, финише и на ошибки
Смежные вопросы