In my ongoing Job Application Tracker project, I faced a challenge:
๐ I needed to send ๐ฟ๐ฒ๐บ๐ถ๐ป๐ฑ๐ฒ๐ฟ ๐ฒ๐บ๐ฎ๐ถ๐น๐ ๐๐ผ ๐ฐ๐ผ๐บ๐ฝ๐ฎ๐ป๐ถ๐ฒ๐ based on a ๐๐๐ฒ๐ฟ-๐ฑ๐ฒ๐ณ๐ถ๐ป๐ฒ๐ฑ ๐ฟ๐ฒ๐บ๐ถ๐ป๐ฑ๐ฒ๐ฟ ๐ฑ๐ฎ๐๐ฒ while creating or updating a job application.
Hereโs how I handled it:
๐ก I used ๐๐ฎ๐ป๐ด๐ณ๐ถ๐ฟ๐ฒ, a background job library in .NET, to schedule emails to be sent on the exact reminder date.
๐ ๐๐ณ ๐๐ต๐ฒ ๐ฎ๐ฝ๐ฝ ๐ฎ๐ป๐ฑ ๐๐ฎ๐ป๐ด๐ณ๐ถ๐ฟ๐ฒ ๐ฎ๐ฟ๐ฒ ๐ฟ๐๐ป๐ป๐ถ๐ป๐ด, the email is sent exactly at the scheduled time.
โธ๏ธ ๐๐ณ ๐๐ต๐ฒ ๐ฎ๐ฝ๐ฝ ๐ผ๐ฟ ๐๐ฎ๐ป๐ด๐ณ๐ถ๐ฟ๐ฒ ๐ถ๐ ๐ฑ๐ผ๐๐ป, the job stays in a pending state โ and ๐ฒ๐
๐ฒ๐ฐ๐๐๐ฒ๐ ๐ฎ๐๐๐ผ๐บ๐ฎ๐๐ถ๐ฐ๐ฎ๐น๐น๐ once both are back up. No jobs are lost. ๐ช
This helped me:
โ Keep the app lightweight
โ Avoid constant polling or manual checks
โ Learn how Hangfire persists and recovers jobs via database
โ๐๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐ โ ๐ต๐ผ๐ ๐ฎ๐ฟ๐ฒ ๐๐ผ๐ ๐ต๐ฎ๐ป๐ฑ๐น๐ถ๐ป๐ด ๐๐ฐ๐ต๐ฒ๐ฑ๐๐น๐ฒ๐ฑ ๐ผ๐ฟ ๐ฑ๐ฒ๐น๐ฎ๐๐ฒ๐ฑ ๐๐ฎ๐๐ธ๐ ๐ถ๐ป ๐๐ผ๐๐ฟ ๐ฎ๐ฝ๐ฝ๐น๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป๐? ๐๐ฟ๐ฒ ๐๐ผ๐ ๐๐๐ถ๐ป๐ด ๐๐ฎ๐ป๐ด๐ณ๐ถ๐ฟ๐ฒ, ๐ค๐๐ฎ๐ฟ๐๐.๐ก๐๐ง, ๐๐๐๐ฟ๐ฒ ๐๐๐ป๐ฐ๐๐ถ๐ผ๐ป๐, ๐ผ๐ฟ ๐๐ผ๐บ๐ฒ๐๐ต๐ถ๐ป๐ด ๐ฒ๐น๐๐ฒ? ๐โ๐ฑ ๐น๐ผ๐๐ฒ ๐๐ผ ๐ต๐ฒ๐ฎ๐ฟ ๐๐ผ๐๐ฟ ๐ฎ๐ฝ๐ฝ๐ฟ๐ผ๐ฎ๐ฐ๐ต ๐ฎ๐ป๐ฑ ๐๐ต๐ผ๐๐ด๐ต๐๐! ๐ฌ๐