Voglio scrivere un'applicazione che monitora alcuni URL (come un paio di centinaia) di tutti i rami della scuola. Monitorando, intendiamo che invia richieste a tali URL a intervalli regolari (l'intervallo per ogni URL è definito dall'utente) e, sulla base della risposta a tali richieste, apporta alcune modifiche alla pagina web. Questo processo dura per sempre.
Ora c'erano due modi per implementarlo:
Approccio 1. carica la pagina web nel browser. Prima prendi i dati url dal server. Quindi raggruppa tutti gli URL che hanno lo stesso valore di intervallo. Ciò si traduce in alcuni gruppi di URL (ad esempio 10 gruppi). Quindi per ciascun gruppo, a intervalli regolari il cui valore è definito dal valore del campo intervallo, invio una richiesta AJAX al mio server locale, che esegue tutta l'elaborazione e restituisce una risposta al browser. Sulla base della risposta apporto modifiche al DOM.
In questo caso, la prima richiesta AJAX per tutti i gruppi dovrebbe essere attivata (quasi) alla stessa ora, e quindi dovrebbe essere attivata agli intervalli definiti. Questo succede IN PARALLELO, per sempre.
L'ho implementato utilizzando le funzioni timer di Javascript come setInterval () e setTimeout () ecc., che sono asincrone ed eseguite a intervalli regolari; così come AJAX che è asincrono.
Approccio 2. Il metodo di cui sopra sembra essere un overhead per browser e concettualmente, leggere i dati sul lato client (browser) dal server e quindi inviarlo al server per l'analisi e quindi ottenere una risposta di analisi sul lato client e quindi sulla base della risposta, apportando modifiche all'aspetto della pagina web, NON SOLO A DESTRA.
Piuttosto, dovrei tenere l'analisi a intervalli regolari sul server, quindi inserire i risultati dell'analisi nel database e quindi dal browser inviare periodicamente richieste al mio server per leggere i risultati dell'analisi dal database, e sulla base della risposta di questa richiesta periodica, apportare modifiche nel DOM della pagina web.
Per questo, ho provato a utilizzare PHP, ma PHP non supporta il multi-threading e le soluzioni come opensource Asynctask diventano troppo complicate (impossibile abilitare l'estensione pcntl, nessun supporto per pcntl nell'ambiente windows); Ho considerato Java, in quanto supporta il multi-threading e la creazione di un thread separato per ogni gruppo sarà semplice.
Quindi quale approccio è corretto o migliore? Che linguaggio di programmazione dovrei usare - Plain Javascript per l'approccio 1, o PHP o Java per l'approccio 2.