У меня есть класс, который содержит несколько asyin c методов, и я хочу создать зависимости между ними. График зависимостей На этой картинке и биение, и окрестность зависят от радио, а суб зависит от окрестности, то есть после запуска радио я хочу запустить биение и окрестность. И после запуска соседей_чека я хочу запустить саб. У меня также есть функция asyinc_start, которая запускает методы, поэтому здесь я хочу управлять ими, но не могу.
Дайте мне несколько советов.
Код check_dependency.py выглядит следующим образом:
import asyncio
import sys
import os
from util import run`enter code here`
class ChkDependency():
async def radio(self):
print("Radio is initialized")
await asyncio.sleep(2)
async def pub(self):
await asyncio.sleep(2)
print("pub is initialized")
async def heartbeat(self):
print("heartbeat started")
await asyncio.sleep(2)
async def neigh_hood_check(self):
await asyncio.sleep(2)
print("checking for matches in neigh list")
async def subs(self):
await asyncio.sleep(2)
print("match found")
await asyncio.sleep(2)
print("subscribing.....")
if __name__ == '__main__':
chkdependency = ChkDependency()
async def start():
while True:
await asyncio.wait([
chkdependency.radio(),
chkdependency.pub(),
chkdependency.heartbeat(),
chkdependency.neigh_hood_check(),
chkdependency.subs(),
])
try:
run(
start(),
)
except KeyboardInterrupt:
print("Exiting...")
exit()
Код util.py выглядит следующим образом:
import asyncio
def run(*args):
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*args))
Я думал о реализации зависимости с помощью семафора, но положительных результатов не было. Пожалуйста, помогите !!