Подтвердить что ты не робот

Лучший способ мониторинга для завершения работы Sidekiq?

Я использую работника Sidekiq для выполнения некоторых запросов в Facebook после того, как пользователь впервые подписывается. Обычно задача занимает около 20 секунд или около того.

Я хочу загрузить некоторую информацию на страницу с помощью ajax-запроса, как только синхронизация будет завершена, но я не уверен, что лучше всего проверить выполнение задания с помощью Javascript.

Одна из возможностей заключается в том, чтобы настроить работника Sidekiq на настройку файла cookie после завершения остальных заданий. Затем я могу использовать функцию setTimeout, чтобы продолжать проверять файл cookie перед вызовом функции загрузки. Но я не уверен, что это лучший способ сделать это. Могу ли я использовать Redis вместо этого?

4b9b3361

Ответ 1

Пол, сначала вам нужно взглянуть на это PubSub on Rails!

Это будет ваше лучшее решение для уведомления пользователя, когда асинхронные события происходят/завершаются в бэкэнд.

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

Ответ 2

Пол, я буду держать ваши проблемы разлученными. Я предполагаю, что работник sidekiq использует некоторую модель рельсов activerecord для отправки некоторой информации в facebook. Я бы установил флаг этой модели в true, когда запросы facebook успешно завершены.

Затем вы можете включить setTimeout в js для опроса для этого изменения в db... или для более быстрых, более автоматических ответов вы можете изучить использование сетевых сокетов. В прошлом я использовал библиотеку под названием Pusher. Это довольно легко интегрировать с рельсами и обеспечивает очень быстрый интерфейс.