24 lines
715 B
TypeScript
24 lines
715 B
TypeScript
import { CampaignStatus, prisma } from '../lib/prisma';
|
|
import { logger } from '../lib/logger';
|
|
import { syncCampaignDay } from '../services/campaign.service';
|
|
|
|
export async function runCampaignRolloverJob(): Promise<void> {
|
|
logger.info('Campaign rollover job started');
|
|
|
|
const campaigns = await prisma.warmupCampaign.findMany({
|
|
where: {
|
|
status: { in: [CampaignStatus.active, CampaignStatus.maintenance] },
|
|
},
|
|
select: { id: true },
|
|
});
|
|
|
|
for (const campaign of campaigns) {
|
|
try {
|
|
await syncCampaignDay(campaign.id);
|
|
} catch (err) {
|
|
logger.error({ err, campaignId: campaign.id }, 'Campaign rollover failed');
|
|
}
|
|
}
|
|
|
|
logger.info('Campaign rollover job finished');
|
|
}
|