Ultimamente sto lavorando con le code di Laravel. Ho installato tutto e funzionato bene. Quello che vedo è che eseguo una richiesta http sul mio sistema, i controllori gestiscono la richiesta emettendo un modello con i dettagli della richiesta come parametri. Il modello è iniettato nel lavoro, quindi lavoro + dati (modello) sono serializzati nella mia coda. (Sto usando DB come driver per avere una migliore visibilità di ciò che sta accadendo)
Qui viene il mio dubbio, suppongo che il "modello" di coda abbia lo scopo di una posizione temporanea per memorizzare la richiesta da eseguire e il ripulire.
Ma quale sarebbe l'approccio per configurarlo per capire cosa è successo negli ultimi X giorni alle richieste? (Devo memorizzare i miei modelli al momento della creazione nella tabella DB corrispondente prima di iniettarli in Jobs?)
So già che esiste la possibilità di configurare una memoria failed_queue. Vedo che c'è solo una gestione dei guasti (con Event)
Ma che ne dici di essere sicuri che qualcosa sia stato elaborato? O forse la coda dovrebbe essere come se accettassi richieste e consegnassi (non ti dispiace memorizzare il successo?)
class MailQueueController extends Controller
{
public function queue(Request $request)
{
$mailQueue = new MailQueue();
$mailQueue->batch_id = 1;
$mailQueue->email_id = 401;
$mailQueue->email_address = '[email protected]';
$mailQueue->json_data_input = '{"hi":"1"}';
$mailQueue->created_at = Carbon::now()->toDateTimeString();
/////////////////////////////////
/// should I?
/////////////////////////////////
$mailQueue->save();
//immediate
dispatch(new ProcessEmailQueue($mailQueue));
}
}