1 parent
6e23f1533b
commit
419325db12
52 files changed
+1329
-110
No files matched your search
+12
-4
@@ -10,13 +10,21 @@ if (!workspaceId) {
|
||||
}
|
||||
const databaseUrl = process.env.DATABASE_URL;
|
||||
const db = databaseUrl ? createPostgresDb(databaseUrl) : await createFileDb(path.join(process.cwd(), ".data", "pglite"));
|
||||
await db.withService((query) =>
|
||||
query.query(
|
||||
await db.withService(async (query) => {
|
||||
await query.query(
|
||||
`insert into public.workspace_module_flags (workspace_id, module_key, enabled)
|
||||
values ($1, 'spreadsheet_adapter', $2)
|
||||
on conflict (workspace_id, module_key) do update set enabled = excluded.enabled, updated_at = now()`,
|
||||
[workspaceId, enabled],
|
||||
),
|
||||
);
|
||||
);
|
||||
await query.query(
|
||||
`insert into public.audit_log (workspace_id, actor_id, action, resource_type, resource_id, result, metadata)
|
||||
select $1, m.user_id, 'module.flag_changed', 'workspace', $1, 'success', jsonb_build_object('enabled', $2::boolean)
|
||||
from public.workspace_members m
|
||||
where m.workspace_id = $1 and m.role = 'owner'
|
||||
limit 1`,
|
||||
[workspaceId, enabled],
|
||||
);
|
||||
});
|
||||
console.log(`spreadsheet_adapter ${enabled ? "ligado" : "desligado"}`);
|
||||
await db.close();
|
||||
+16
-3
@@ -8,6 +8,9 @@ import { cleanupExpired, listQueuedJobIds, readJobForWorker, recoverStaleJobs, r
|
||||
import { asJson } from "../src/server/spreadsheet-adapter/db-utils";
|
||||
import type { JobProgress, RequestContext, Role } from "../src/domain/spreadsheet-adapter/types";
|
||||
|
||||
import { assertProductionEnv } from "../src/config/env";
|
||||
|
||||
assertProductionEnv(process.env);
|
||||
const databaseUrl = process.env.DATABASE_URL;
|
||||
if (!databaseUrl && process.env.NODE_ENV === "production") {
|
||||
throw new Error("DATABASE_URL é obrigatório para o worker.");
|
||||
@@ -17,9 +20,19 @@ await migrate(db);
|
||||
const deps = { db, storage: createStorage(), coordinator: createCoordinator() };
|
||||
|
||||
async function tick() {
|
||||
await recoverStaleJobs(deps);
|
||||
await cleanupExpired(deps);
|
||||
for (const jobId of await listQueuedJobIds(deps)) {
|
||||
await recoverStaleJobs(deps).catch((error) => {
|
||||
console.error("worker", error instanceof Error ? error.name : "error");
|
||||
});
|
||||
await cleanupExpired(deps).catch((error) => {
|
||||
console.error("worker", "cleanup", error instanceof Error ? error.name : "error");
|
||||
});
|
||||
const queued = new Set(await listQueuedJobIds(deps));
|
||||
for (let index = 0; index < 20; index += 1) {
|
||||
const jobId = await deps.coordinator.dequeue().catch(() => null);
|
||||
if (!jobId) break;
|
||||
queued.add(jobId);
|
||||
}
|
||||
for (const jobId of queued) {
|
||||
const rows = await readJobForWorker(deps, jobId);
|
||||
const row = rows[0];
|
||||
if (!row) continue;
|
||||
|
||||
Reference in new issue
Block a user