Automazione ricorrente attivata mensilmente non eseguita come previsto

Ciao!

Sto riscontrando un problema con un’automazione che dovrebbe attivarsi all’inizio del mese; tuttavia, anche se è abilitata, non viene attivata automaticamente. Non riesco a trovare alcun registro o un modo per eseguire il debug del motivo per cui non viene eseguita autonomamente quando dovrebbe. Qualcuno di voi sa come risolvere questo problema, per favore?

Come potete vedere di seguito, l’automazione dovrebbe ‘Programmare una riunione con i risultati di Data Explorer’ automaticamente ogni mese. Se faccio clic su “Attiva ora”, funziona come previsto: gli utenti aggiunti all’elenco ricevono il risultato di Data Explorer nonché un file CSV; tuttavia, l’attivazione automatica non viene eseguita.

Apprezzerei qualsiasi feedback o suggerimento che possa aiutarmi a risolvere il problema. Grazie!

1 Mi Piace

Hai confermato la data esatta programmata e l’impostazione del fuso orario e, se disponibile, hai attivato il pulsante Esegui lavori mancati?

1 Mi Piace

Hai effettuato dei test per assicurarti che tutti i criteri siano soddisfatti in modo naturale (a parte trigger now)?

Cioè, imposta l’orario per accadere ogni giorno e vai a un gruppo fittizio. Se funziona correttamente, passa poi a mensile per il tuo gruppo effettivo.

Inoltre, credo che il tuo pubblico di destinazione debba avere la query dell’esploratore di dati condivisa con loro.

1 Mi Piace

Ciao

Grazie per l’aiuto.. @kairo162 @putty

Sì.. ma il problema non è che non viene eseguito alla data/ora prevista, il problema è che non viene eseguito affatto.

Dove posso trovare questo pulsante, per favore?

Dovrebbe inviare un messaggio privato diretto a due utenti. Gli utenti hanno la query condivisa con loro. Grazie per il suggerimento di testare provando orari diversi. Proverò a sperimentare anche usando un gruppo di prova.

2 Mi Piace

La principale differenza che noto è che la tua interfaccia non mostra quando l’automazione dovrebbe essere attivata la prossima volta.

Penso che inizierei configurando una nuova automazione con le stesse impostazioni e verificando se, dopo averla abilitata, venga visualizzata una “data di prossima attivazione”.

1 Mi Piace

Utilizzo esattamente questo script di automazione in più punti senza problemi. Ecco la mia configurazione in uno di essi: ho modificato la ricorrenza in 5 minuti invece di una settimana per questo test, ma viene attivato settimanalmente come previsto quando è impostato così:

PM (tech-admin è un gruppo)

Prova ad attivare l’automazione e poi controlla i tuoi log in yoursite/logs

1 Mi Piace

Vedo questo:

Forse prova a rimuovere l’emoji delle manopole di controllo dal nome dello script e dal titolo della query dell’esploratore dati. Potrebbe essere quello a rompere il payload (anche se penso che dovrebbero essere ok).

1 Mi Piace

Ciao @Moin @Lilly

Grazie per l’aiuto! Temo che il mistero non sia ancora risolto… ecco perché:

Prima della ‘data di attivazione’, era esattamente così che appariva, con il messaggio ‘La prossima automazione si attiverà alle: [data/ora]’; tuttavia, dopo che quella data/ora è passata senza che venisse eseguita con successo, il messaggio non viene più mostrato. Durante i test, ho modificato l’orario in 1 minuto e il messaggio di attivazione è ricomparso. In un mese precedente, quando non si è attivata, ho aggiornato il timer e ha mostrato il messaggio che si sarebbe attivata alla prima ora del mese successivo (ma non è successo).

In realtà ha funzionato ed è stato attivato in alcuni mesi, mentre in altri no, quindi non è chiaro il motivo, ma ora sembra non attivarsi più automaticamente. Che versione di Discourse state utilizzando? La mia è 2026.5.0-latest…

Purtroppo, anche quando attivo manualmente, non appare nulla in /logs. (Ho selezionato tutte le opzioni).

Non credo sia questo il problema perché ho modificato l’attivazione a 1 minuto ed è stata inviata:

Anche io sono sulla stessa versione e aggiorno almeno una volta a settimana.

1 Mi Piace

Ok, grazie! Vorresti provare a creare un’automazione di test che si attivi mensilmente?

Ho il presentimento che il problema sia legato all’attivazione ‘mensile’, perché quando la modifico in un’attivazione di 1 minuto, funziona.

Ok, l’ho impostata su mensile, l’ho attivata e ha funzionato. Ma aspettare un mese per fare i test non è molto utile in questo caso. Tra pochi minuti proverò a impostare la data di inizio.

modifica: sembra che l’impostazione mensile funzioni per me

Se funziona per te, forse l’errore riguarda solo alcuni utenti?

Ok, allora oggi Moin e io stavamo parlando di questo caso, e lei ha sollevato la possibilità che ci fosse un bug nell’uso della ricorrenza mensile, dato che la lunghezza dei mesi varia? Ovviamente aveva ragione, in un certo senso… :stuck_out_tongue:

Comunque, ho fatto un po’ di ricerche :detective:

Non sono riuscito a trovare lo script di automazione per schedule pm with data-explorer results nella cartella core plugins/automation/lib/discourse_automation/scripts, quindi deve essere nascosto da qualche altra parte.

Tuttavia, ho esaminato la logica qui per le ricorrenze (presumibilmente quello script la utilizza) in plugins/automation/lib/discourse_automation/triggers/recurring.rb:

Penso che il codice sottostante per le automazioni mensili ricorrenti stia calcolando il N-esimo giorno della settimana invece della data effettiva del calendario, e che ci sia una discrepanza logica con Calendar day: inserendo BYDAY=#{count}#{byday} nell’RRule, l’automazione forza un allineamento al giorno della settimana, mentre dovrebbe usare BYMONTHDAY invece di BYDAY.

Quindi, se imposti un’automazione per iniziare il 15 aprile (che è il mercoledì 3° di aprile), il sistema interpreta la regola come: esegui il 3° mercoledì di ogni mese.

Quando arriva maggio, il 3° mercoledì è il 20 maggio, il che fa slittare la programmazione di 5 giorni.

Inoltre, se imposti un’automazione il 30 o il 31 di un mese (ad esempio, il “5° martedì”), il sistema cercherà il 5° martedì nel mese successivo. Se quel mese ha solo 4 martedì, l’automazione non troverà una data valida e salterà silenziosamente l’intero mese.

Ho una correzione testata e sto creando una PR se il team vuole dare un’occhiata. Cambia la logica dal N-esimo giorno della settimana alla data esatta del calendario.


Ecco alcuni screenshot dai miei test e debug:

2 istanze, una senza correzione e l’altra con la mia correzione logica

Crea la stessa automazione in entrambe (la versione corretta è a destra):

Guarda le differenze nei banner che dicono “La prossima automazione si attiverà alle:” con uno slittamento di 5 giorni: la versione non corretta slitta al mercoledì 3° (20 maggio), invece del 15 maggio.

Ad esempio, i mesi potrebbero essere completamente saltati se il sistema cercasse il 4° giovedì invece di una data effettiva.

Puoi testare lo stesso risultato anche nella console di Rails

Non corretto:

Con correzione:

PR qui:

1 Mi Piace

@j.jaffeux, dai un’occhiata veloce a questo :eyes?