2016-09-15 2 views
3

Algolia가 대기열에있는 작업을 성공적으로 처리했거나 Algolia가 마지막 재 인덱스와 비교하여 새 문서에 대해 색인을 생성 한 경우를 알 수있는 방법이 있습니까?Algolia 실시간 웹 훅

새 문서의 색인이 생성 될 때마다 웹 사이트를 탐색하는 사용자는 실시간으로 경고 메시지를 표시하고 새로운 내용을 체크 아웃하는 시스템을 구축하고자합니다.

이렇게 할 수 있나요?

그렇지 않은 경우 해결 방법이 있습니까?

+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

당신 말이 맞아요, webhooks 확실히 의미가있을 수 있습니다. 불행히도 Algolia는 이러한 기능을 제공하지 않으므로 폴링에 의존해야합니다.

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