Background Tasks triggered by current date and time

Thanks, @meredydd. I think I’ll probably go this route, but that does bring up a separate question, namely, what strategy do I use to ensure that all the work in a background task gets done?

For example, lets say I have a task that is supposed to send emails to 1,000 people, and for sake of argument, the time it takes to send those emails is longer than the lifetime of the background task that the email send function loops lives. I could put in checkpoints for every little piece of work, or save the work done every 5 emails sent or so, but that seems to require custom work save logic for every task.

How would you generalize this?