Tune broadcast rate / progress throttle
This commit is contained in:
@@ -35,7 +35,7 @@ def clamp_broadcast_workers(value: int | None) -> int:
|
||||
|
||||
|
||||
def clamp_broadcast_rate(value: int | None) -> int:
|
||||
return max(1, min(int(value or 35), 60))
|
||||
return max(1, min(int(value or 30), 60))
|
||||
|
||||
|
||||
def ensure_utc_datetime(value: datetime) -> datetime:
|
||||
|
||||
@@ -410,12 +410,13 @@ async def handle_broadcast_confirm(callback_query: CallbackQuery, state: FSMCont
|
||||
if "message is not modified" not in str(e).lower():
|
||||
logger.debug(f"[Sender] Обновление прогресса: {e}")
|
||||
|
||||
broadcast_service = BroadcastService(bot=bot, session=session, messages_per_second=35)
|
||||
broadcast_service = BroadcastService(bot=bot, session=session, messages_per_second=30)
|
||||
stats = await broadcast_service.broadcast(
|
||||
messages,
|
||||
workers=5,
|
||||
on_progress=on_progress,
|
||||
progress_interval=2.0,
|
||||
progress_every=200,
|
||||
)
|
||||
|
||||
await callback_query.message.answer(
|
||||
@@ -463,7 +464,7 @@ async def handle_schedule_datetime_input(message: Message, state: FSMContext, se
|
||||
keyboard_json=data.get("keyboard"),
|
||||
scheduled_for=scheduled_for,
|
||||
workers=5,
|
||||
messages_per_second=35,
|
||||
messages_per_second=30,
|
||||
)
|
||||
await state.clear()
|
||||
await message.answer(
|
||||
|
||||
@@ -34,7 +34,7 @@ def run_broadcast_in_thread(
|
||||
bot = Bot(token=api_token, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
|
||||
keyboard = InlineKeyboardMarkup.model_validate(keyboard_data) if keyboard_data else None
|
||||
messages = [{"tg_id": tg_id, "text": text_message, "photo": photo, "keyboard": keyboard} for tg_id in tg_ids]
|
||||
service = BroadcastService(bot=bot, session=None, messages_per_second=35)
|
||||
service = BroadcastService(bot=bot, session=None, messages_per_second=30)
|
||||
|
||||
async def on_progress(completed: int, total: int, sent: int, failed: int) -> None:
|
||||
if progress_cb:
|
||||
|
||||
Reference in New Issue
Block a user