Pianifico il lavoro utilizzando la libreria hangfire.io e posso osservare che viene elaborato nella dashboard incorporata. Tuttavia, il mio sistema ha bisogno che il lavoro possa essere cancellato dalla dashboard.Annulla lavoro in esecuzione pianificato con Hangfire.io
Esiste un'opzione per eliminare il lavoro in esecuzione, ma questo modifica solo lo stato del lavoro nel database e non interrompe l'esecuzione del lavoro.
Vedo in documentazione c'è l'opzione per passare IJobCancellationToken
tuttavia, a quanto ho capito, viene utilizzato per arrestare correttamente il lavoro quando l'intero server si sta spegnendo.
C'è un modo per ottenere l'annullamento programmatico dell'attività già in esecuzione?
Devo scrivere il mio componente che periodicamente richiama il database e controlla se l'istanza del server corrente sta eseguendo un lavoro che è stato cancellato? Ad esempio, mantieni il dizionario jobId -> CancellationTokenSource e poi segnala la cancellazione usando tokensource appropriato.
Hi hai mai scoprire come annullare/eliminare un'operazione in coda o in esecuzione>? –
Per annullare un lavoro a livello di codice, chiamare 'BackgroundJob.Delete'. Vedi: http://discuss.hangfire.io/t/cancel-a-running-job/603 – Dejan
@Dejan - grazie –