feat: poll pricing jobs in worker
Quality / test (push) Canceled after 0s

This commit is contained in:
2026-09-09 12:45:48 -04:00
parent 72346130ed
commit bab4efc6ad
2 changed files with 23 additions and 1 deletions
+22
View File
@@ -8,7 +8,12 @@ import { createLocalImageStorage, resolveProjectImageStorageRoot } from '../../a
import { createImageDerivativeProcessor } from '../../api/src/infrastructure/images/image-derivative-processor.js';
import { createSharpImageRenderer } from '../../api/src/infrastructure/images/sharp-image-renderer.js';
import { createImageDerivativeJobRepository } from '../../api/src/modules/inventory/repositories/image-derivative-job-repository.js';
import { createPricingRepository } from '../../api/src/modules/pricing/repositories/pricing-repository.js';
import { createPricingRefreshJobRepository } from '../../api/src/modules/pricing/repositories/pricing-refresh-job-repository.js';
import { createPricingService } from '../../api/src/modules/pricing/services/pricing-service.js';
import { createPricingProviderRegistry } from '../../api/src/modules/pricing/providers/pricing-provider.js';
import { processNextPersistentImageDerivativeJob } from './image-derivative-worker.js';
import { processNextPersistentPricingRefreshJob, runPricingRefreshJob } from './pricing-refresh-worker.js';
const pollIntervalMs = Number.parseInt(process.env.WORKER_POLL_INTERVAL_MS ?? '2000', 10);
@@ -17,6 +22,12 @@ async function runWorker() {
const database = createDatabase();
const imageStorage = createLocalImageStorage(imageStorageRoot);
const jobRepository = createImageDerivativeJobRepository(database.db);
const pricingRefreshJobRepository = createPricingRefreshJobRepository(database.db);
const pricingProviderRegistry = createPricingProviderRegistry();
const pricingService = createPricingService({
pricingRepository: createPricingRepository(database.db),
pricingProviderRegistry,
});
const processor = createImageDerivativeProcessor({
imageStorage,
renderer: createSharpImageRenderer(),
@@ -32,6 +43,17 @@ async function runWorker() {
});
if (result) console.log(`Image derivative job ${result.id} ${result.status.toLowerCase()}.`);
const pricingResult = await processNextPersistentPricingRefreshJob({
jobRepository: pricingRefreshJobRepository,
pricingRefreshJob: (job) => runPricingRefreshJob({
job,
providerRegistry: pricingProviderRegistry,
pricingService,
}),
});
if (pricingResult) console.log(`Pricing refresh job ${pricingResult.id} ${pricingResult.status.toLowerCase()}.`);
}
await processOne();