Use workerqueue for mailstream jobs instead of custom table #1133
No reviewers
Labels
No labels
2018.09
2019.01
2019.03
2019.06
2019.09
2019.12
2020.03
2020.06
2020.09
2020.12
2021.03
2021.07
2021.09
2022.02
2022.06
2022.09
2022.12
2023.04
2023.05
2023.09
2024.03
2024.06
2024.09
2024.12
2025.02
2025.05
dependencies
Hackathon 2021
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: friendica/friendica-addons#1133
Loading…
Reference in a new issue
No description provided.
Delete branch "mat/mailstream-workerqueue"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This uses a completely different approach to managing retries, that avoids the need to create a whole table just for this plugin.
The main reason I need retries is to work nicely with retriever (which I will eventually submit, but I still need to make it use the workerqueue). Retriever marks items as invisible until it's finished processing them, and they shouldn't be mailed until then. Mailstream will now retry every hour until it succeeds. I'm hoping this doesn't cause too many problems.
Have you tested it on your system?
I'm running it on my test system, with a patch that makes mail sending randomly fail 7/8 of the time to properly exercise the code. The test system generates a post every 20 minutes, and I'm watching the emails arrive as well as watching the retries in the workerqueue. It seems pretty robust, all the emails do arrive eventually.
I haven't put it on my live system yet. The fun part is the conversion of the existing custom table when you upgrade. Before I upgrade my live system I'd have to make a site backup, and since the database is quite large I've been avoiding that. Would you like me to run it on live as well before accepting the PR?
I'm not quite sure why the build above is failing?
@nupplaphil do you know why it fails?