Ghost/ghost/email-service/lib/email-body-cache.js
Simon Backx fb3cbe5fc8
Added short lived caching to email batch body (#16233)
fixes https://github.com/TryGhost/Team/issues/2522

When sending an email for multiple batches at the same time, we now
reuse the same email body for each batch in the same segment. This
reduces the amount of database queries and makes the sending more
reliable in case of database failures.

The cache is short lived. After sending the email it is automatically
garbage collected.
2023-02-07 11:01:49 +01:00

21 lines
594 B
JavaScript

/**
* This is a cache provider that lives very short in memory, there is no need for persistence.
* It is created when scheduling an email in the batch sending service, and is then passed to the sending service. The sending service
* can optionally use a passed cache provider to reuse the email body for each batch with the same segment.
*/
class EmailBodyCache {
constructor() {
this.cache = new Map();
}
get(key) {
return this.cache.get(key) ?? null;
}
set(key, value) {
this.cache.set(key, value);
}
}
module.exports = EmailBodyCache;