Sono nuovo di Azure WebJobs, ho eseguito un esempio in cui un utente carica un'immagine per il blob storage e inserisce un record nella coda, quindi il lavoro recupera quello dalla coda come un segnale per fare qualcosa come ridimensionare il immagine caricata. Fondamentalmente nel codice il lavoro usa l'attributo QueueTrigger
su un metodo statico pubblico per fare tutto questo.Web di Azure - Nessuna funzione trovata - Come posso creare un lavoro senza trigger?
Ora ho bisogno di un lavoro che faccia qualcosa come inserire un record in una tabella di database ogni ora, non ha alcun tipo di trigger, funziona solo da solo. Come faccio a fare questo?
ho cercato di avere un metodo statico e in essa io fare l'inserto al db, il lavoro è stato avviato ma ho avuto un messaggio che dice:
Nessun funzioni che si trovano. Prova a rendere pubbliche le classi di lavoro e pubblica i metodi statici.
Cosa mi manca?
Modifica Dopo la risposta di Victor ho provato la seguente,
static void Main()
{
JobHost host = new JobHost();
host.Call(typeof(Program).GetMethod("ManualTrigger"));
}
[NoAutomaticTrigger]
public static void ManualTrigger()
{
// insert records to db
}
ma questa volta ho avuto InvalidOperationException
,
'ManualTrigger Void()' non può essere invocato da Azure WebJobs SDK. Mancano gli attributi di SDK WebJobs di Azure?
Grazie Victor per la tua risposta, ho provato NoAutomaticTrigger e ho ottenuto un InvalidOperationException, ho aggiornato la mia domanda con il codice che ho, potresti aiutarmi a vedere cosa sto facendo male, per favore. Molte grazie! –
Quale versione dell'SDK stai utilizzando? La classe è pubblica? –
Ah hai ragione, ho appena dichiarato "pubblico" sul "programma di classe", viene eseguito tuttavia mostra il messaggio sotto per un paio di secondi e poi la finestra della console si blocca. Messaggio: "Trovato la seguente funzione: WebJob1.Program.ManualTrigger Esecuzione: 'Program.ManualTrigger' perché questa era la funzione waas chiamata in modo programmatico tramite le API host." –