add abort signal to some requests

This commit is contained in:
NlightN22 2025-01-17 02:17:08 +07:00
parent 5188dea80f
commit af9e424c7b
4 changed files with 11 additions and 6 deletions

View File

@ -106,10 +106,12 @@ export const proxyApi = {
hostName: string, hostName: string,
cameraName: string, cameraName: string,
timezone: string, timezone: string,
abortSignal?: AbortSignal,
) => ) =>
instanceApi.get<RecordSummary[]>(`proxy/${hostName}/api/${cameraName}/recordings/summary`, { instanceApi.get<RecordSummary[]>(`proxy/${hostName}/api/${cameraName}/recordings/summary`, {
params: { timezone }, params: { timezone },
timeout: 5 * 60 * 1000, timeout: 5 * 60 * 1000,
signal: abortSignal
}).then(res => res.data), }).then(res => res.data),
// E.g. http://127.0.0.1:5000/api/events?before=1708534799&after=1708448400&camera=CameraName&has_clip=1&include_thumbnails=0&limit=5000 // E.g. http://127.0.0.1:5000/api/events?before=1708534799&after=1708448400&camera=CameraName&has_clip=1&include_thumbnails=0&limit=5000
@ -125,6 +127,7 @@ export const proxyApi = {
includeThumnails?: boolean, includeThumnails?: boolean,
minScore?: number, minScore?: number,
maxScore?: number, maxScore?: number,
abortSignal?: AbortSignal,
) => ) =>
instanceApi.get<EventFrigate[]>(`proxy/${hostName}/api/events`, { instanceApi.get<EventFrigate[]>(`proxy/${hostName}/api/events`, {
params: { params: {
@ -140,6 +143,7 @@ export const proxyApi = {
max_score: maxScore, max_score: maxScore,
}, },
timeout: 5 * 60 * 1000, timeout: 5 * 60 * 1000,
signal: abortSignal
}).then(res => res.data), }).then(res => res.data),
getEventsSummary: (hostName: string, cameraName: string) => getEventsSummary: (hostName: string, cameraName: string) =>

View File

@ -27,9 +27,9 @@ const CameraAccordion = ({
const { data: recordings, isPending, isError, refetch } = useQuery({ const { data: recordings, isPending, isError, refetch } = useQuery({
queryKey: [frigateQueryKeys.getRecordingsSummary, camera?.id], queryKey: [frigateQueryKeys.getRecordingsSummary, camera?.id],
queryFn: () => { queryFn: ({signal}) => {
if (camera && hostName) { if (camera && hostName) {
return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone()) return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone(), signal)
} }
return null return null
} }

View File

@ -53,7 +53,7 @@ const EventsAccordion = ({
const { data, isPending, isError, refetch } = useQuery({ const { data, isPending, isError, refetch } = useQuery({
queryKey: [frigateQueryKeys.getEvents, host, camera, day, hour, startTime, endTime], queryKey: [frigateQueryKeys.getEvents, host, camera, day, hour, startTime, endTime],
queryFn: () => { queryFn: ({signal}) => {
if (!isRequiredParams) return null if (!isRequiredParams) return null
let queryStartTime: number let queryStartTime: number
let queryEndTime: number let queryEndTime: number
@ -84,7 +84,8 @@ const EventsAccordion = ({
parsed.data.limit, parsed.data.limit,
parsed.data.includeThumnails, parsed.data.includeThumnails,
parsed.data.minScore, parsed.data.minScore,
parsed.data.maxScore parsed.data.maxScore,
signal
) )
} }
return null return null

View File

@ -30,11 +30,11 @@ const SelectedDayList = ({
const { data, isPending, isError, refetch } = useQuery({ const { data, isPending, isError, refetch } = useQuery({
queryKey: [frigateQueryKeys.getRecordingsSummary, recStore.filteredCamera?.id, day], queryKey: [frigateQueryKeys.getRecordingsSummary, recStore.filteredCamera?.id, day],
queryFn: async () => { queryFn: async ({signal}) => {
if (camera && host) { if (camera && host) {
const hostName = mapHostToHostname(host) const hostName = mapHostToHostname(host)
if (hostName) { if (hostName) {
return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone()) return proxyApi.getRecordingsSummary(hostName, camera.name, getResolvedTimeZone(), signal)
} }
} }
return null return null