-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Closed
Labels
Description
Part of #61738
The background search service is responsible for
- Tracking in memory mappings of
sessionIdto multiplesearchIds (also tracking theuserandrequestthat generated that search. - Clearing out those mappings if they are stale.
- Monitoring the existence of a saved object for that
sessionId(indicating a background search was requested) and storing the search IDs into it. - Restore an
searchIdfor a givensessionIdfrom a saved object.
Tasks:
- Define a saved object to represent a background search
- Define a
BackgroundSearchservice
interface BackgroundSearchService {
/* Track a `searchId` in memory or on a background search saved object (if exists). */
async trackId: (userId: string, sessionId: string, requestParams: any, searchId: string) => void;
/* Get a `searchId` from a background search saved object */
async getId(userId: string, sessionId: string, requestParams: any): string | undefined;
/* Create a background search saved object for a given session. */
async store(sessionId: string) => void;
}- Define a route
internal\search\bg(??) where client can send asessionIdand optionally a list ofsearchIds. InvokebackgroundSearch.store(sessionId)andtrackIdfor eachsearchId.