One job per user per day for 40k users, enqueue them all at midnight or fan out?
Each user gets a digest email at 8am in their own timezone. Currently a single cron at midnight UTC loops the user table and enqueues 40k jobs, which pins the database for about twenty minutes and makes the app…