...before the actual loop, the browser doesn't show it until the messages are sent. It flashes briefly before the confirmation screen is shown. It defeats the purpose of it.
You need two processes
One to tell the user , wait, wait, wait, its finished... using meta-refresh
And one background process to query the database and send the emails
Classic strategy is the following things :) Proc::Background, Highlander: one instance at a time (Oct 00), Watching long processes through CGI (Aug 02) , Throttling your web server (Oct 00)
Modern strategy is use ajax or websockets, examples Mojolicious::Lite +and jQuery +AJAX + Mojo::Template, Re^3: real-time output from Mojolicious WebSockets?
Still have to background the actual mailer ... but there might be an anyevent mail so you can avoid forking
Either way separate the stuff
In reply to Re^5: Looping through database query to send emails is taking too long
by Anonymous Monk
in thread Looping through database query to send emails is taking too long
by htmanning
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |