2016-09-15 8 views
3

Algoliaがキューに入れられたジョブを正常に処理したとき、またはAlgoliaが最後の再インデックスと比較して新しい文書を索引付けしたときに、何か知る方法はありますか?AlgoliaリアルタイムWebhooks

新しい文書がインデックスに登録されるたびに、ウェブサイトを閲覧しているユーザーには、更新のリアルタイムで警告が表示され、新しいものをチェックアウトするシステムを構築したいと考えています。

これは可能でしょうか?

もしそうでない場合、これを可能にする回避策はありますか?

+0

この質問は、ShopifyインテグレーションのAlgoliaに関連していますか?そうでない場合、Algoliaの仕事を待つことは、 '' wait_task'(https://www.algolia.com/doc/api-client/ruby/indexing#wait-for-operations)を 'taskID'すべてのインデックス作成操作に対するAPIの応答に存在します。 – Jerska

+0

いいえ、これはShopifyインテグレーションの問題ではありません。クローズソースの電子商取引にAlgoliaを社内で統合したものです。しかし、 'wait_task'を使うと、ジョブが完了したかどうかを確認するプーリングタイマーを作成する必要があります。 Webhookは代わりにサーバーに直接警告します。 – GiamPy

答えて

3

あなたは完全に正しいです。ウェブフックは間違いなく意味をなすことができます。残念ながら、Algoliaはそのような機能を提供していないので、ポーリングに頼らざるを得ません。

アルゴリアに送るジョブは、順番に実行されます。非常に簡単な解決策は、関連するアクションを持つ各ジョブをキューに格納することです。キューの最初のtaskIDを無期限に待機させ、戻すとすぐにアクションを実行するという専用のプロセスを持つことができます。

+0

私たちはLaravelを弊社で使用しており、あなたが提案したソリューションはきれいに達成するのが非常に難しいです。 Algoliaインデックスへの更新または追加は、自動的に更新を検索し、それをプッシュする[AlgoliaEloquentTrait](https://github.com/algolia/algoliasearch-laravel-4/blob/master/src/AlgoliaEloquentTrait.php)によって自動的に処理されますサーバーに送信します。 'taskID'はイベントなので直接アクセスできません。 – GiamPy

+1

次に、抽象化の限界にぶち当たっていると思います。しかし、PHPクライアントを直接使用することで、あなたが望むものを達成するのに問題はなくなります。もう少し時間がかかります(https://www.algolia.com/doc/api-client/php/getting-started) 。また、algoliasearch-laravelの問題を直接開こうとすることもできます。 – Jerska