Асинхронные функции в Django
Я пытаюсь использовать django admin для администрирования моего Telegram бота. У меня есть асинхронная функция под названием mailing, как я могу запустить эту функцию в действиях django admin? Я могу синхронизировать ее, но я не знаю, как сделать паузу, чтобы мой бот не был забанен, когда он отправляет много сообщений, и продолжал отвечать пользователям.
Это мой первый вопрос на Stackowerflow. Извините за мой английский.
admins.py
@admin.action(description='mailing')
def mailing(modeladmin, request, queryset):
pass
@admin.register(Publish)
class PublishAdmin(admin.ModelAdmin):
list_display = ('name', 'created_at')
actions = [mailing]
async def mailing_start(text, url, user_id=None):
users = db.select_user_list()
count = 0
receivers_count = 0
markup = ''
if url:
pass
#markup = await create_link_button(url)
for user in users:
try:
if user_id != user[0]:
if url:
await bot.send_message(user[0], text, reply_markup=markup)
else:
await bot.send_message(user[0], text)
count += 1
if count == 18:
await asyncio.sleep(3)
count = 0
receivers_count += 1
except Exception as err:
print(f'id - {user[0]}, bot is stopped \n{err}')
receivers_count -= 1
return f'{emoji.emojize(":white_check_mark:", use_aliases=True)}, ' \
f'message recieved {receivers_count}'