18

ユーザーが初めてサインインした後、Sidekiq ワーカーを使用して Facebook へのいくつかの要求を完了しています。通常、このタスクには約 20 秒ほどかかります。

同期が完了したらすぐに ajax リクエストを使用してページに情報をロードしたいのですが、Javascript でジョブの完了を確認する最善の方法がわかりません。

1 つの可能性は、残りのジョブが完了した後に Cookie を設定するように Sidekiq ワーカーを構成することです。次に、setTimeout 関数を使用して、load 関数を呼び出す前に Cookie をチェックし続けることができます。しかし、これがこれを行うための最良の方法であるかどうかはわかりません。代わりに Redis を使用できますか?

4

2 に答える 2

1

ポール、まず、このPubSub on Rails チュートリアルを見てください。

これは、バックエンドで非同期処理が発生/完了したときにユーザーに通知するためのより良いソリューションになります。

ヒント: heroku を使用している場合、この複雑さを抽象化したライブラリが多数用意されています。

于 2015-05-06T13:20:03.057 に答える
1

ポール、私はあなたの懸念を分けておきます。sidekiq ワーカーがいくつかの Rails ActiveRecord モデルを使用して Facebook に情報を送信すると想定しています。Facebook のリクエストが正常に完了したら、そのモデルのフラグを true に設定します。

次に、js で setTimeout をオンにして、db でのその変更をポーリングすることができます... または、Web ソケットを使用して調べることができる、より高速で自動化された応答を得ることができます。過去にPusherというライブラリを使用したことがあります。Rails との統合は非常に簡単で、非常に機敏な UI を実現します。

于 2015-05-11T01:46:45.247 に答える