В одном из моих проектов мне нужно запускать три разные функции обновления базы данных через разные промежутки времени. Например, функция 1 должна запускаться каждые 30 секунд, функция 2 должна запускаться каждые 60 секунд и функция 3 каждые 5 минут (в частности, из-за ограничений вызовов API).
Я пытался добиться этого в python, просматривая каждое возможное решение, но я не могу найти ничего, что подходит для моего варианта использования. Я довольно свободен sh в python.
Вот (несколько) то, что у меня есть, используя asyncio.
import asyncio
def updater1(url1, url2, time):
print(f"Doing my thing here every {time} seconds")
def updater2(url1, url2, time):
print(f"Doing my thing here every {time} seconds")
def updater3(url, time):
print(f"Doing my thing here every {time} seconds")
async def func1():
updater1(rankUrl, statsUrl, 30)
await asyncio.sleep(30)
async def func2():
updater2(rankUrl, statsUrl, 60)
await asyncio.sleep(60)
async def func3():
updater3(url, 300)
await asyncio.sleep(300)
# Initiate async loops
while True:
asyncio.run(func1())
asyncio.run(func2())
asyncio.run(func3())
Проблема в том, что эти задачи выполняются одна за другой в то время как я пытаюсь добиться того, чтобы они работали независимо друг от друга, со временем запуска, когда сценарий запускается, и в соответствии с их собственным индивидуумом l oop times
Любая идея о том, как это могло бы быть очень важно - я открыт для новых концепций и идей, если у вас есть какие-либо для меня, чтобы исследовать:)