2021-12-23 14:14:06 +00:00
|
|
|
import providerRegistry from './Fediverse/Providers'
|
|
|
|
import prismaClient from './Storage/PrismaClient'
|
|
|
|
import { addNodeSeed } from './Jobs/Seed/addNodeSeed'
|
|
|
|
import { processNextNode } from './Jobs/processNextNode'
|
|
|
|
|
2021-12-27 23:20:19 +00:00
|
|
|
const loop = async (): Promise<void> => {
|
2021-12-23 14:14:06 +00:00
|
|
|
while (true) {
|
|
|
|
try {
|
|
|
|
await processNextNode(prismaClient, providerRegistry)
|
|
|
|
} catch (err) {
|
2021-12-27 23:20:19 +00:00
|
|
|
console.warn(err)
|
2022-01-03 12:26:17 +00:00
|
|
|
const waitForJobMilliseconds = parseInt(process.env.WAIT_FOR_JOB_MINUTES ?? '60') * 60 * 1000
|
|
|
|
console.info('Delaying next node process', { timeoutMilliseconds: waitForJobMilliseconds, timeoutDate: new Date(Date.now() + waitForJobMilliseconds), now: new Date() })
|
|
|
|
setTimeout(loop, waitForJobMilliseconds)
|
2021-12-27 23:20:19 +00:00
|
|
|
return
|
2021-12-23 14:14:06 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-27 23:20:19 +00:00
|
|
|
const app = async (): Promise<void> => {
|
2021-12-23 14:14:06 +00:00
|
|
|
const seedDomain = process.env.SEED_NODE_DOMAIN ?? 'mastodon.social'
|
|
|
|
await addNodeSeed(prismaClient, seedDomain)
|
|
|
|
setTimeout(loop)
|
|
|
|
}
|
|
|
|
|
|
|
|
app()
|