mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-10-19 14:17:20 +02:00
fix: preserve state across backend updates (#756)
This commit is contained in:
1 parent
beef8387ae
commit
f040557ae8
5 files changed
+231
-64
No files matched your search
@@ -1,26 +1,34 @@
|
||||
import { SandboxedJob } from "bullmq";
|
||||
import { getRepository as getRepositoryImport } from "../../server/database";
|
||||
import { RepoJobData } from "../index";
|
||||
import { createLogger } from "../../core/logger";
|
||||
import { createLogger, serializeError } from "../../core/logger";
|
||||
|
||||
const logger = createLogger("queue:cache");
|
||||
|
||||
export default async function (job: SandboxedJob<RepoJobData, void>) {
|
||||
const {
|
||||
connect,
|
||||
getRepository,
|
||||
}: {
|
||||
connect: () => Promise<void>;
|
||||
getRepository: typeof getRepositoryImport;
|
||||
} = require("../../server/database");
|
||||
interface Database {
|
||||
connect: () => Promise<void>;
|
||||
getRepository: typeof getRepositoryImport;
|
||||
}
|
||||
|
||||
export async function processRemoveCache(
|
||||
job: SandboxedJob<RepoJobData, void>,
|
||||
database?: Database
|
||||
) {
|
||||
const { connect, getRepository }: Database =
|
||||
database || require("../../server/database");
|
||||
try {
|
||||
await connect();
|
||||
logger.info("removing cache", { repoId: job.data.repoId });
|
||||
const repo = await getRepository(job.data.repoId);
|
||||
await repo.removeCache();
|
||||
} catch {
|
||||
// error already handled
|
||||
} finally {
|
||||
logger.info("cache removed", { repoId: job.data.repoId });
|
||||
} catch (error) {
|
||||
logger.error("cache removal failed", {
|
||||
...serializeError(error),
|
||||
repoId: job.data.repoId,
|
||||
});
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export default processRemoveCache;
|
||||
@@ -2,18 +2,21 @@ import { SandboxedJob } from "bullmq";
|
||||
import { getRepository as getRepositoryImport } from "../../server/database";
|
||||
import { RepositoryStatus } from "../../core/types";
|
||||
import { RepoJobData } from "../index";
|
||||
import { createLogger } from "../../core/logger";
|
||||
import { createLogger, serializeError } from "../../core/logger";
|
||||
|
||||
const logger = createLogger("queue:remove");
|
||||
|
||||
export default async function (job: SandboxedJob<RepoJobData, void>) {
|
||||
const {
|
||||
connect,
|
||||
getRepository,
|
||||
}: {
|
||||
connect: () => Promise<void>;
|
||||
getRepository: typeof getRepositoryImport;
|
||||
} = require("../../server/database");
|
||||
interface Database {
|
||||
connect: () => Promise<void>;
|
||||
getRepository: typeof getRepositoryImport;
|
||||
}
|
||||
|
||||
export async function processRemoveRepository(
|
||||
job: SandboxedJob<RepoJobData, void>,
|
||||
database?: Database
|
||||
) {
|
||||
const { connect, getRepository }: Database =
|
||||
database || require("../../server/database");
|
||||
try {
|
||||
await connect();
|
||||
logger.info("removing repository", { repoId: job.data.repoId });
|
||||
@@ -29,9 +32,14 @@ export default async function (job: SandboxedJob<RepoJobData, void>) {
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
} catch {
|
||||
// error already handled
|
||||
} finally {
|
||||
logger.info("repository removed", { repoId: job.data.repoId });
|
||||
} catch (error) {
|
||||
logger.error("repository removal failed", {
|
||||
...serializeError(error),
|
||||
repoId: job.data.repoId,
|
||||
});
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export default processRemoveRepository;
|
||||
Reference in new issue
Block a user