Sto lavorando a un progetto che gestisce i libri paga dei dipendenti utilizzando php (nessun framework). Questa applicazione è composta da client (con i propri database). Ogni il database è composto dai dipendenti del cliente e dai suoi libri paga. Le caratteristiche rilevanti sono:
- Un amministratore può elaborare una busta paga due volte al mese per tutti i dipendenti di un determinato cliente. Quando si fa clic su un pulsante "processo", verrà creato un file pdf per ciascun dipendente e memorizzato in una directory.
- E l'amministratore può selezionare i dipendenti in una tabella di dipendenti per un determinato cliente, quindi inviare a ogni dipendente selezionato un'email contenente il loro file pdf quando si fa clic su un pulsante. Il file pdf è diverso per ogni dipendente.
- E l'amministratore può selezionare i clienti in una tabella di clienti, quindi per ogni cliente, inviare a tutti i dipendenti un'email contenente il loro file pdf quando si fa clic su un pulsante. Il file pdf è diverso per ogni dipendente.
La mia soluzione iniziale per la creazione di pdf e l'invio di e-mail è quella di scorrere l'elenco dei dipendenti recuperati da ciascun database client ed eseguire un'azione quando si fa clic su un pulsante. Tuttavia, quando seleziono 40 dipendenti per creare file PDF per loro usando fpdf, l'applicazione impiega 4 secondi per rifinire. Questo è inaccettabile perché ogni cliente può contenere al massimo 5000 dipendenti. Lo stesso vale per l'invio di e-mail con phpmailer, ci sono voluti 25 secondi per inviare tre e-mail.
Quindi, ho iniziato a cercare una soluzione multithread in cui ogni azione potesse essere eseguita allo stesso tempo. Tuttavia, pthreads v3 funziona solo in CLI, stiamo usando php 7. Non so sull'utilizzo di più processi, ma ho letto che potrebbe essere complecato.
Esiste una soluzione praticabile e veloce per ottenere ciò che voglio in PHP? Devo usare una lingua diversa?