There are different reasons why a message from the queue cannot be sent. By introducing a counter for failed sending attempts, unsendable queue entries are skipped above a threshold value. This is to prevent faulty entries from blocking the execution of new, valid queue entries.
After entries whose dispatch has failed are skipped, this must be recognisable in the status of the newsletter. Therefore, the progress bar is now divided into three parts: sent, failed, open.
Thx for digging deep into that issue.
In general I like the feature and I'm going to merge this.
Some things should be changed after that (I can do that):
German translations are missing
Newsletter::getFailuredProgress() could perhaps be merged with getDispatchProgress() (but can also be done later)
We should store the "3" centrally as a constant or setting (currently QueueRepository::findAllByNewsletterAndFailedStatus() as a parameter and once hard defined in QueueRepository::findDispatchableInQueue() )
\Throwable may not be a full qualified namespace in ProgressQueue::progress()
There are different reasons why a message from the queue cannot be sent. By introducing a counter for failed sending attempts, unsendable queue entries are skipped above a threshold value. This is to prevent faulty entries from blocking the execution of new, valid queue entries.
After entries whose dispatch has failed are skipped, this must be recognisable in the status of the newsletter. Therefore, the progress bar is now divided into three parts: sent, failed, open.
Resolves: #177 Related: #137