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

enabled: Boolean - Attiva/disattiva il job
days: Array - Giorni settimana ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
workHours: Object - Orario lavorativo con start/end
frequency: String - Minuti tra esecuzioni ("60" = ogni ora)
last_run: Timestamp - Ultima esecuzione per evitare duplicati

πŸš€ 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

98.5%

Uptime

2.3s

Avg response time

156

Articles/week

0.2%

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