Webhook programmato con cron
Faccia chiamare un suo URL secondo un orario cron, per un report notturno, un controllo dei rinnovi o il riscaldamento di una cache, senza tenere acceso un server o un container solo per guardare l'orologio. Paga a consumo, senza abbonamento.
chiamate ricorrenti senza un server tuo
Un'attività ricorrente senza un server suo
Eseguire qualcosa a orario fisso significava tenere vivo un processo da qualche parte solo per guardare l'orologio: un cron su una macchina virtuale, un container programmato o una funzione serverless con la propria configurazione degli orari. Ognuno va monitorato, deve sopravvivere ai riavvii e richiede che qualcuno si accorga quando smette di partire senza avvisare. Per una sola attività ricorrente è sproporzionato. Qui lei registra un URL insieme a un'espressione cron e al contenuto da inviare. L'orario resta salvato e il suo URL viene chiamato automaticamente in ogni momento che corrisponde, dalla nostra infrastruttura, senza interrogazioni periodiche né connessioni permanenti da parte sua.
La sintassi cron di sempre e quando conviene
Il formato cron nacque con lo strumento cron originale di Unix negli anni 1970, perché gli amministratori potessero elencare attività ricorrenti come semplici righe di testo. Decenni dopo la stessa sintassi compatta è ancora la lingua comune degli orari ricorrenti quasi ovunque, quindi le espressioni che ha già, e l'abitudine di scriverle, valgono così come sono. Invece di un processo in background il cui unico compito è svegliarsi, guardare l'ora e inviare una richiesta, quella logica passa all'orario registrato. È adatto a un report notturno, al controllo dei rinnovi degli abbonamenti o al riscaldamento di una cache, per piccoli team e progetti personali.
La sintassi cron, in breve
Cinque campi separati da uno spazio decidono quando: minuto, ora, giorno del mese, mese, giorno della settimana. Scrivi “0 9 * * 1-5” per dire ogni giorno feriale alle 9, oppure “*/15 * * * *” per ogni quarto d’ora.
Cosa vedi quando la chiamata parte
Se il tuo server non risponde, il tentativo risulta fallito e lo vedi nel registro, così te ne accorgi subito invece di scoprirlo giorni dopo perché un report non è mai arrivato a destinazione. Puoi consultare lo storico delle esecuzioni passate in qualsiasi momento, senza dover ricostruire a memoria quando è partita l’ultima chiamata andata a buon fine.
Casi d'uso
Cache aggiornata ogni ora
Alessandro Ferrari, sviluppatore freelance a Torino, tiene aggiornata la cache del suo sito con una chiamata programmata ogni ora, senza pagare un server dedicato acceso solo per eseguire un cron.
Domande frequenti
Che sintassi usa il cron?
La classica a cinque campi: minuto, ora, giorno del mese, mese, giorno della settimana, con * per “ogni valore” e liste come 1-5 per l’intervallo. È la stessa sintassi che trovi in qualunque crontab Unix.
Posso cambiare l’orario dopo averlo impostato?
Sì. Puoi modificare la regola cron o l’indirizzo di destinazione in qualsiasi momento, senza dover ricreare la programmazione da zero.
Devo tenere acceso un mio server?
No. L'orario resta salvato e il suo URL viene chiamato dalla nostra parte in ogni momento che corrisponde, così lei mantiene solo l'indirizzo che svolge il lavoro, senza interrogazioni periodiche né connessioni aperte.
Che cosa devo inviare per programmare un orario?
Tre cose: un'espressione cron che dice quando, l'URL da chiamare e il contenuto da inviare a ogni esecuzione. Una volta registrato, l'orario resta salvato e lei riceve la conferma che è attivo.
Perché non usare cron su un mio server?
Si può, ma un cron su una macchina virtuale, un container programmato o una funzione con il proprio pianificatore vanno sorvegliati, devono sopravvivere ai riavvii e qualcuno deve accorgersi quando smettono di funzionare in silenzio. Per una sola attività ricorrente è troppa infrastruttura.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Un POST autenticato crea l'attività; il risultato arriva via webhook o con un link firmato. Questa capacità è disponibile via API, non come strumento web interattivo.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/cron-webhook \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/hook","cron":"0 9 * * 1"}'const res = await fetch("https://api.kit.forhosting.com/dev/cron-webhook", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/hook",
"cron": "0 9 * * 1"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/cron-webhook",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/hook",
"cron": "0 9 * * 1"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/cron-webhook", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/hook","cron":"0 9 * * 1"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/hook","cron":"0 9 * * 1"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/cron-webhook", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"url": "https://example.com/hook",
"cron": "0 9 * * 1"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.cron_webhook",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Un webhook programmato è una chiamata HTTP che parte da sola, agli orari che decidi tu con una regola cron. Questo strumento del KIT la esegue al posto tuo: imposti la frequenza e l’indirizzo di destinazione, lui richiama l’endpoint puntuale, senza un server o un cron job tuo sempre attivo.
La sintassi cron, in breve
Il KIT chiama il tuo webhook esattamente a quell’orario, con il payload che hai definito tu: non devi installare nulla né tenere un processo acceso in background, e la regola resta attiva finché non la modifichi o la elimini tu stesso.
Un caso concreto: il report del lunedì
Lo Studio Commercialista Bianchi di Bologna deve rigenerare ogni lunedì mattina il riepilogo delle scadenze fiscali della settimana. Con la regola “0 7 * * 1” il KIT chiama l’endpoint che prepara il PDF alle 7 in punto e lo invia allo studio: nessuno deve ricordarsi di avviarlo a mano, e non serve un server dedicato acceso ventiquattr’ore su ventiquattro solo per un cron che scatta una volta a settimana.
Cosa vedi quando la chiamata parte
Ogni esecuzione lascia una traccia: l’orario in cui è partita, la risposta del tuo endpoint, l’esito.
Un servizio del KIT, non un altro cron da gestire
La programmazione gira sull’infrastruttura del KIT, non sulla tua: configuri la regola dalla pagina web o via API e da quel momento non mantieni nessun processo sempre acceso. Ogni chiamata eseguita costa $0.002, prezzo pubblicato: paghi solo le esecuzioni che avvengono davvero, senza un canone fisso per il servizio e senza doverti preoccupare di riavviare nulla se il tuo computer resta spento.
Casi di integrazione
Sincronizzare il magazzino ogni notte
Tecnoedil Verona S.n.c. sincronizza ogni notte alle 2 lo stock dei materiali con il gestionale del fornitore: la regola cron chiama il webhook che avvia l’aggiornamento, senza che nessuno debba lanciarlo a mano prima di aprire il cantiere.
Fattura ricorrente il primo del mese
Rossi & Figli S.r.l. genera in automatico la fattura mensile per i clienti con contratto ricorrente: il primo di ogni mese il webhook programmato avvia la procedura, puntuale come un orologio.
Domande tecniche
Quanto costa ogni chiamata programmata?
$0.002 a esecuzione, prezzo pubblicato. Non c’è canone fisso: paghi solo le volte in cui il webhook viene effettivamente chiamato.
Devo creare un account per programmarlo?
No. Oggi il KIT non ha account: configuri la regola e attivi il servizio direttamente, via web o via API, senza creare nessuna utenza.
Cosa succede se il mio endpoint non risponde?
Il tentativo risulta fallito e resta nel registro delle esecuzioni con l’orario e l’esito, così puoi controllare cos’è andato storto senza dover indovinare.
Il contenuto che invio resta privato?
Il payload viaggia solo verso l’endpoint che indichi tu: il KIT lo usa esclusivamente per effettuare la chiamata programmata, non lo conserva né lo condivide con altri.