Cron Scheduler: Pubblicazione Infinita
Il Motore di ArtiFlow
Il Cron Scheduler Γ¨ il cuore pulsante di ArtiFlow. Mentre tu dormi, lui scrive. Mentre tu lavori, lui pubblica. 24/7 content production.
Un sistema di automazione intelligente che genera idee, scrive articoli e pubblica contenuti senza intervento umano.
β‘ Cron Architecture
System Overview
Cron Job β API Endpoint β Firebase β AI Engine β Content Generation Flow: 1. External cron triggers /api/cron 2. Validates auth and user context 3. Reads user config from Firebase 4. Executes scheduled jobs (ideas + writing) 5. Updates timestamps and status 6. Returns execution results Result: Continuous content pipeline
π External Trigger
Cron-job.org o sistema simile che chiama l'endpoint ogni X minuti.
π§ Smart Scheduler
Logica intelligente che decide quando eseguire job basandosi su giorni, orari e frequenza.
βοΈ Content Engine
AI writing engine che genera idee e articoli di qualitΓ .
βοΈ Configuration Deep Dive
π Database Structure
Configurazione salvata in Firebase:
Path: users/{uid}/config/agente
Document Structure:
{
"cron_scheduler": {
"generic": {
"ideas": {
"enabled": true,
"days": ["Mon", "Wed", "Fri"],
"workHours": {
"start": "09:00",
"end": "18:00"
},
"frequency": "120",
"last_run": "2026-01-15T10:30:00Z"
},
"writing": {
"enabled": true,
"days": ["Tue", "Thu"],
"workHours": {
"start": "10:00",
"end": "17:00"
},
"frequency": "180",
"last_run": "2026-01-15T11:00:00Z"
}
}
}
}π― Parameter Explanation
π Production Setup
π Cron-job.org Configuration
Setup per production environment:
Cron-job.org Setup:
1. Create new cron job
2. URL: https://yourdomain.com/api/cron
3. Method: GET
4. Headers:
Authorization: Bearer {CRON_SECRET}
x-user-id: {USER_ID}
5. Schedule: */15 * * * * (every 15 minutes)
6. Notifications: On failure
7. Timeout: 60 seconds
Status: Active β
π§ Environment Variables
Variabili necessarie in .env.local:
.env.local Configuration: CRON_SECRET=your-super-secure-secret-key FIREBASE_API_KEY=your-firebase-api-key FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com FIREBASE_PROJECT_ID=your-project-id FIREBASE_STORAGE_BUCKET=your-project.appspot.com FIREBASE_MESSAGING_SENDER_ID=123456789 FIREBASE_APP_ID=1:123456789:web:abcdef Security: Never commit to Git! π
π Advanced Scheduling Strategies
π― High-Frequency Strategy
Ideas: Every 2 hours (8x/day) βββ Days: Mon, Wed, Fri, Sat, Sun βββ Hours: 08:00 - 22:00 βββ Expected: 40 ideas/week Writing: Every 3 hours (6x/day) βββ Days: Tue, Thu, Sat βββ Hours: 09:00 - 18:00 βββ Expected: 18 articles/week Total: 58 pieces of content/week
β‘ Burst Strategy
Ideas: Every 30 min (32x/day) βββ Days: Mon-Fri βββ Hours: 09:00 - 17:00 βββ Expected: 160 ideas/week Writing: Every 60 min (8x/day) βββ Days: Mon, Wed, Fri βββ Hours: 10:00 - 16:00 βββ Expected: 24 articles/week Total: 184 pieces/week (aggressive)
π Monitoring & Analytics
Performance Metrics
Uptime
Avg response time
Articles/week
Error rate
β οΈ Troubleshooting Guide
β Cron Not Executing
Check: CRON_SECRET, x-user-id header, URL accessibility, firewall.
β οΈ Jobs Not Running
Check: enabled=true, correct days, workHours, frequency, last_run timestamp.
π Rate Limiting
Check: API rate limits, Firebase quotas, external service limits.
β Performance Issues
Check: Database queries, AI response times, network latency.
π― Best Practices
π Security
- β’ Use strong CRON_SECRET
- β’ Rotate secrets monthly
- β’ Monitor access logs
- β’ HTTPS only
β‘ Performance
- β’ Optimize Firebase queries
- β’ Cache AI responses
- β’ Monitor response times
- β’ Set appropriate timeouts
π Reliability
- β’ Retry failed jobs
- β’ Log all executions
- β’ Alert on failures
- β’ Backup configurations
π Scalability
- β’ Load balance multiple servers
- β’ Queue system for high volume
- β’ Database sharding
- β’ CDN for static assets