Tipicamente, la soluzione per questo tipo di problemi sarebbe l'integrazione di un bus di messaggi nel sistema. Potresti prendere in considerazione un prodotto come Beanstalkd . Ciò richiede l'installazione di software sul tuo server. Suppongo che questo suggerimento venga chiamato "utilizzo di una libreria esterna".
Se puoi accedere al server di distribuzione e puoi aggiungere cronjob (o forse un amministratore di sistema può) potresti considerare un cronjob che fa una chiamata php-cli a uno script che legge i lavori da una coda di lavori nel tuo database che viene riempita dal controller metodo.
Se non riesci a installare il software sul server in esecuzione, potresti prendere in considerazione l'utilizzo di una soluzione SAAS come Iron.io per ospitare la funzionalità bus per te. Iron.io utilizza quella che viene chiamata coda push . Con una coda push il bus dei messaggi esegue attivamente una richiesta (push) agli ascoltatori registrati con il contenuto del messaggio. Questo potrebbe funzionare poiché non richiede di eseguire una richiesta di curl.
Se nessuno dei precedenti è possibile, le tue mani sono legate. Un altro post abbastanza rilevante sull'argomento:Elaborazione PHP ritardata e scalabile