Fixed old feed deleting

main
Štěpán Škorpil 2022-12-27 22:11:19 +01:00
rodzic 425abd5af0
commit a8e6dbdb9d
3 zmienionych plików z 17 dodań i 3 usunięć

Wyświetl plik

@ -30,6 +30,7 @@ export const createFeed = async (
displayName: feedData.displayName, displayName: feedData.displayName,
locked: feedData.locked, locked: feedData.locked,
createdAt: feedData.createdAt.getTime(), createdAt: feedData.createdAt.getTime(),
refreshedAt: new Date().getTime(),
foundAt: new Date().getTime(), foundAt: new Date().getTime(),
fields: feedData.fields.map((field) => { fields: feedData.fields.map((field) => {
return { name: field.name, value: field.value } return { name: field.name, value: field.value }

Wyświetl plik

@ -7,13 +7,26 @@ export const deleteOldFeeds = async (
node: Node node: Node
): Promise<number> => { ): Promise<number> => {
await elastic.indices.refresh({ index: feedIndex }) await elastic.indices.refresh({ index: feedIndex })
// delete by domain and (refreshedAt < node.refreshAttepmtedAt or refreshedAt=null)
const result = await elastic.deleteByQuery({ const result = await elastic.deleteByQuery({
index: feedIndex, index: feedIndex,
query: { query: {
bool: { bool: {
must: [ must: [
{ match: { domain: node.domain } }, { match: { domain: node.domain } },
{ range: { refreshedAt: { lt: node.refreshAttemptedAt } } } {
bool: {
should: [
{ range: { refreshedAt: { lt: node.refreshAttemptedAt } } },
{
bool: {
must_not: { exists: { field: 'refreshedAt' } }
}
}
],
minimum_should_match: 1
}
}
] ]
} }
} }

Wyświetl plik

@ -20,11 +20,11 @@ export const updateFeed = async (
followersCount: feedData.followersCount, followersCount: feedData.followersCount,
followingCount: feedData.followingCount, followingCount: feedData.followingCount,
statusesCount: feedData.statusesCount, statusesCount: feedData.statusesCount,
lastStatusAt: feedData.lastStatusAt, lastStatusAt: feedData.lastStatusAt?.getTime(),
description: feedData.description, description: feedData.description,
displayName: feedData.displayName, displayName: feedData.displayName,
locked: feedData.locked, locked: feedData.locked,
createdAt: feedData.createdAt, createdAt: feedData.createdAt.getTime(),
refreshedAt: new Date().getTime(), refreshedAt: new Date().getTime(),
type: feedData.type, type: feedData.type,
fields: feedData.fields.map((field) => { fields: feedData.fields.map((field) => {