Похожие чаты

Ребят, я с асинком вообще не дружу, потому прошу совета.

у меня есть функция, которая проводит запись в бд, но по прошествии нескольких секунд после запуска первой мне нужно запустить другую функцию, чтобы она ещё раз изменила запись в бд. как это реализуется правильно? чтобы при этом не блокировалась программа? в отдельный процесс? в корутину? в отдельный тред? чо почитать? подскажите

12 ответов

20 просмотров

по таймеру запустить? Или просто ты ожидаешь что через несколько секунд у тебя может возникнуть такая необходимость?

Оцелотег- Автор вопроса
Alex
по таймеру запустить? Или просто ты ожидаешь что ч...

не, по таймеру с точно заданным числом секунд, но надо так чтобы пока таймер тикает другие функции вызываться могли

Оцелотег- Автор вопроса
Оцелотег
не, по таймеру с точно заданным числом секунд, но ...

если ты намекаешь на await asyncio.sleep(n), то это не особо поможет, у тебя может быть другая блокирующая корутина которая > n секунд не возвращает управление эвент лупу, проще говоря asyncio.sleep гарантирует что эвент луп вернет управление твоему коду через >= n секунд

как вариант, в первой функции поставить таску селери с выполнением второй функции с delay в нужное количество секунд 🫠

Зависит от того, какие нужны гарантии. Если можно продолбать пару задач при перезагрузке приложения, то: - если у тебя асинк, то создай таску, в которой будет asyncio.sleep - если треды, то создай тред, в котором будет time.sleep Если тебе нужны гарантии и пропустить таску будет больно, то можешь записывать задачу в БД, которую будет полить другой сервис и класть в очередь. Забыл как называется паттерн, недавно тут в чате мелькал

Оцелотег- Автор вопроса
🍉
Зависит от того, какие нужны гарантии. Если можно ...

не, в бд не критично класть попробую через треды

Оцелотег- Автор вопроса
🍉
Зависит от того, какие нужны гарантии. Если можно ...

А можно прервать исполнение таски такой? По какому нибудь условию

Оцелотег
А можно прервать исполнение таски такой? По какому...

Можешь проверить в самой таске после слипа

Оцелотег
А можно прервать исполнение таски такой? По какому...

можно сделать более гранулярные слипы for i in range(n): time.sleep(1) if is_cancelled: return

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Карта сайта