supersam/scripts
hermes d9327f320c SMS: сериализация отправки между кампаниями под аккаунтный лимит sms.ru (8 SMS за 10 минут суммарно)
Ограничение sms.ru — не более 8 SMS за 10 минут ПО АККУНТУ суммарно, на любые
номера (антибомбинг; превышение → отказ с кодами 231/232). Таймеры first/second/
paid стартуют в одну и ту же секунду, поэтому счётчик нужно читать
последовательно, иначе каждый процесс видит «свободно 8» и вместе они
превышают лимит.

- sms_rate_limit.py: acquire_send_lock/release_send_lock на pg_advisory_lock,
  lock_timeout 120с; докстринг, описание настроек и текст алерта приведены к
  правилу «8 суммарно по аккаунту» (страховка «N на номер» остаётся).
- first/second/paid: блокировка берётся сразу после получения списка групп и
  снимается перед выходом; если блокировку взять не удалось — прогон
  пропускается (лучше пропуск, чем блокировка аккаунта), следующая попытка по
  таймеру.
- Настройки: sms_limit_account_10min=8 (основное правило), окно 600с;
  sms_limit_per_number_10min=8 остаётся второй страховкой.

Проверено на клоне боевой базы (sms_rl_test), реальный sms.ru не вызывался:
- 2 процесса × 20 попыток одновременно → ровно 8 отправок (4+4), далее
  «аккаунт: уже 8 SMS за 600с (лимит 8)»; в БД 8 строк с sms_id в окне;
- блокировка: держатель 6с → попытка с таймаутом 2с = False (2.0с), с
  таймаутом 20с = True (2.7с);
- E2E сц.3 (боевой профиль per_number=0/account=8/win=600): 8 ушло, 3
  придержано; сц.1 (per-number=8) — регресс пройден.
2026-10-04 13:20:07 +00:00
..
anonymize-1c-xml.mjs refactor: align delivery flow with 1c imports 2026-04-13 16:24:04 +03:00
autocall_scheduler.py SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00
backup-code-s3.sh SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00
backup-pgdump-s3.sh fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
backup.py feat: add stopWords to delivery invitation RPC response 2026-05-28 19:24:40 +00:00
check_autocall_window.py SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00
push_sender.py fix(ui): use СуперСам and normal order composition heading 2026-08-06 11:12:47 +00:00
sms_first_campaign.py SMS: сериализация отправки между кампаниями под аккаунтный лимит sms.ru (8 SMS за 10 минут суммарно) 2026-10-04 13:20:07 +00:00
sms_first_campaign.service fix: DB host 10.0.4.5 (Docker internal IP) 2026-06-23 08:21:57 +00:00
sms_first_campaign.timer feat: Python script replacing n8n first SMS campaign 2026-06-23 08:20:42 +00:00
sms_first_campaign_ref.py SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00
sms_manual_campaign.py SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00
sms_paid_storage_campaign.py SMS: сериализация отправки между кампаниями под аккаунтный лимит sms.ru (8 SMS за 10 минут суммарно) 2026-10-04 13:20:07 +00:00
sms_rate_limit.py SMS: сериализация отправки между кампаниями под аккаунтный лимит sms.ru (8 SMS за 10 минут суммарно) 2026-10-04 13:20:07 +00:00
sms_run_with_db.sh fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
sms_second_campaign.py SMS: сериализация отправки между кампаниями под аккаунтный лимит sms.ru (8 SMS за 10 минут суммарно) 2026-10-04 13:20:07 +00:00
sms_timer_manager.sh SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00
sms_timer_manager.sh.bak-dbhost-20260929-080246 SMS: проактивный лимитер sms.ru (8 SMS на номер за 10 минут) перед отправкой 2026-10-04 12:12:16 +00:00