[ 
https://issues.apache.org/jira/browse/OPENMEETINGS-327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SebastianWagner updated OPENMEETINGS-327:
-----------------------------------------

    Description: 
Currently mails are send "In-Context". Normally in a separated Thread.
But there is no control about the number of Threads, which can lead to problems 
if the server is under heavy load.
Also if you terminate the service while runnning and restart Mails that where 
currently in progress are just gone.

To have better control about it there should be some kind of queueing for the 
Mails to be processed.
To do that one approach would be:
Create a new table "mail_queue" [Fields: id, subject, receipents(can be comma 
separated list), message, sendStatus, errorMessage, starttime, updatetime].
Every time the system wants to send a new mail it will write a new entry in 
this table.
A separated scheduler will check every xx seconds for entries in that table / 
open emails that need to be send and will get the next 10 (or xx entries) and 
process them.
Processed emails can be:
 - Either deleted from the table
 - Or maybe better just update the sendStatus and delete them via the 
Administration by user on demand to have a chance to look at possible issues 
and errors.
The MailHandler should write problems and errors when sending emails to the 
error field.

Bonus: Would be great if you can see the current Mail-Queue in the 
Administration panel and change the sendStatus to provoke resending it.

  was:
Currently mails are send "In-Context". Normally in a separated Thread.
But there is no control about the number of Threads, which can lead to problems 
if the server is under heavy load.
Also if you terminate the service while runnning and restart Mails that where 
currently in progress are just gone.

To have better control about it there should be some kind of queueing for the 
Mails to be processed.
To do that one approach would be:
Create a new table "mail_queue" [Fields: id, subject, receipents(can be comma 
separated list), message, sendStatus, errorMessage, starttime, updatetime].
Every time the system wants to send a new mail it will write a new entry in 
this table.
A separated scheduler will check every xx seconds for entries in that table / 
open emails that need to be send and will get the next 10 (or xx entries) and 
process them.
Processed emails can be:
 - Either deleted from the table
 - Or maybe better jsut update the sendStatus and delete them via the 
Administration by user on demand to have a chance to look at possible issues 
and errors.
The MailHandler should write problems and errors when sending emails to the 
error field.

Bonus: Would be great if you can see the current Mail-Queue in the 
Administration panel and change the sendStatus to provoke resending it.

    
> Add Restart Save Mail-Queue
> ---------------------------
>
>                 Key: OPENMEETINGS-327
>                 URL: https://issues.apache.org/jira/browse/OPENMEETINGS-327
>             Project: Openmeetings
>          Issue Type: Bug
>    Affects Versions: 2.0 Apache Incubator Release
>            Reporter: SebastianWagner
>             Fix For: 2.1 Apache Incubator Release
>
>
> Currently mails are send "In-Context". Normally in a separated Thread.
> But there is no control about the number of Threads, which can lead to 
> problems if the server is under heavy load.
> Also if you terminate the service while runnning and restart Mails that where 
> currently in progress are just gone.
> To have better control about it there should be some kind of queueing for the 
> Mails to be processed.
> To do that one approach would be:
> Create a new table "mail_queue" [Fields: id, subject, receipents(can be comma 
> separated list), message, sendStatus, errorMessage, starttime, updatetime].
> Every time the system wants to send a new mail it will write a new entry in 
> this table.
> A separated scheduler will check every xx seconds for entries in that table / 
> open emails that need to be send and will get the next 10 (or xx entries) and 
> process them.
> Processed emails can be:
>  - Either deleted from the table
>  - Or maybe better just update the sendStatus and delete them via the 
> Administration by user on demand to have a chance to look at possible issues 
> and errors.
> The MailHandler should write problems and errors when sending emails to the 
> error field.
> Bonus: Would be great if you can see the current Mail-Queue in the 
> Administration panel and change the sendStatus to provoke resending it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to