mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-24 07:28:11 +02:00
Retrait de l'ancien serveur Node/TypeScript
Le serveur Rust (server/src) le remplace entièrement : routes, services, migrations Drizzle et scripts SQL d'initialisation sont supprimés. Le schéma est désormais créé et migré par server/src/migrate.rs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013qMexTfVRaegbPAgsagCAJ
This commit is contained in:
54 files changed
+2
-13174
No files matched your search
@@ -1,51 +0,0 @@
|
||||
import cron from 'node-cron';
|
||||
import { TokenManager } from './services/token_manager';
|
||||
import { AnalyticsService } from './services/analytics';
|
||||
import { purgeOldMedia } from './services/media-purge';
|
||||
import { tiktokService } from './services/tiktok';
|
||||
|
||||
export function startTokenCron() {
|
||||
// Toutes les 2 minutes — suivi des publications TikTok (API asynchrone)
|
||||
cron.schedule('*/2 * * * *', async () => {
|
||||
try {
|
||||
await tiktokService.syncPendingPublications();
|
||||
} catch (error) {
|
||||
console.error('[Cron] TikTok publish status sync failed:', error);
|
||||
}
|
||||
});
|
||||
console.log('[Cron] TikTok publish status job scheduled (*/2 * * * *).');
|
||||
|
||||
// Deux fois par jour (00:00 et 12:00) — contrôle et renouvellement des jetons.
|
||||
// Un jeton révoqué par Meta ne prévient pas : passer deux fois par jour
|
||||
// réduit d'autant la fenêtre pendant laquelle une publication échouerait.
|
||||
cron.schedule('0 0,12 * * *', async () => {
|
||||
console.log('[Cron] Running token check...');
|
||||
const results = await TokenManager.checkAndRefreshTokens();
|
||||
const renewed = results.filter(r => r.renewed).length;
|
||||
const failing = results.filter(r => r.status === 'expired' || r.status === 'error').length;
|
||||
console.log(`[Cron] Token check done: ${results.length} contrôlés, ${renewed} renouvelés, ${failing} en échec.`);
|
||||
});
|
||||
console.log('[Cron] Token refresh job scheduled (0 0,12 * * *).');
|
||||
|
||||
// Run twice daily (08:00 and 20:00) — Analytics sync for all pages
|
||||
cron.schedule('0 8,20 * * *', async () => {
|
||||
console.log('[Cron] Running analytics sync for all pages...');
|
||||
try {
|
||||
await AnalyticsService.syncAllPages();
|
||||
} catch (error) {
|
||||
console.error('[Cron] Analytics sync failed:', error);
|
||||
}
|
||||
});
|
||||
console.log('[Cron] Analytics sync job scheduled (0 8,20 * * *).');
|
||||
|
||||
// Run every day at 03:00 AM — Cleanup old media from Cloudinary and DB
|
||||
cron.schedule('0 3 * * *', async () => {
|
||||
console.log('[Cron] Running daily media purge check...');
|
||||
try {
|
||||
await purgeOldMedia();
|
||||
} catch (error) {
|
||||
console.error('[Cron] Media purge check failed:', error);
|
||||
}
|
||||
});
|
||||
console.log('[Cron] Media purge job scheduled (0 3 * * *).');
|
||||
}
|
||||
Reference in new issue
Block a user