trucking campaigns: daily builder + MX verifier concurrency + tracking column

- build_trucking_campaigns.py: nightly script that creates 8 Listmonk campaigns
  per day (4 TZ x 2 types: MCS-150 overdue 2k/TZ, inactive USDOT 1k/TZ)
  at 4AM ET / 5AM ET (CT) / 6AM ET (MT) / 7AM ET (PT). Deduplicates via
  listmonk_sent_at column.
- migration 083: add listmonk_sent_at + listmonk_campaign_type to fmcsa_carriers
- email_verifier.py: bump max_workers from 5 to 20 for 4x faster throughput
- cron: daily pw-trucking-campaigns at 08:00 UTC (3 AM EST)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-31 10:07:44 -05:00
parent 54a46062a5
commit 0b7a35a58e
4 changed files with 294 additions and 1 deletions

View file

@ -199,3 +199,12 @@ worker_crons:
module: scripts.workers.quarterly_499q_notify
on_calendar: "*-*-* 13:00:00 UTC"
persistent: true
# Trucking campaign builder — 3 AM EST (08:00 UTC) daily.
# Creates 8 Listmonk campaigns for the next day's sends (4 TZ × MCS-150 + inactive USDOT).
# 2,000 carriers/TZ for MCS-150; 1,000 carriers/TZ for inactive USDOT.
- name: pw-trucking-campaigns
description: Build daily trucking Listmonk campaigns (MCS-150 overdue + inactive USDOT)
module: scripts.build_trucking_campaigns
on_calendar: "*-*-* 08:00:00 UTC"
persistent: true