dev@locazia: make indexator

This commit is contained in:
user 2024-03-06 13:28:36 +03:00
parent cad723925c
commit 2003688c94
3 changed files with 29 additions and 12 deletions

View File

@ -1,15 +1,42 @@
from app.core._utils.send_status import send_status
from app.core._config import MY_PLATFORM_CONTRACT
from app.core._blockchain.ton.toncenter import toncenter
from app.core.models.node_storage import StoredContent
from app.core.storage import db_session
from app.core.logger import make_log
import asyncio
async def indexator_loop(platform_found: bool, seqno: int) -> [bool, int]:
if not platform_found:
platform_state = await toncenter.get_account(MY_PLATFORM_CONTRACT)
if not platform_state.get('code'):
make_log("TON", "Platform contract is not deployed, skipping loop", level="info")
await send_status("indexator", "not working: platform is not deployed")
return
else:
platform_found = True
make_log("Indexator", "Service running", level="debug")
with db_session() as session:
last_known_index = session.query(StoredContent).order_by(StoredContent.onchain_index.desc()).first()
last_known_index = last_known_index.onchain_index if last_known_index >= 0 else 0
make_log("Indexator", f"Last known index: {last_known_index}", level="debug")
await send_status("indexator", f"working (seqno={seqno})")
return platform_found, seqno
async def main_fn():
make_log("Indexator", "Service started", level="info")
platform_found = False
seqno = 0
while True:
try:
platform_found, seqno = await indexator_loop(platform_found, seqno)
except BaseException as e:
make_log("Indexator", f"Error: {e}", level="error")
await asyncio.sleep(5)
await send_status("indexator", f"working (seqno={seqno})")
seqno += 1
# if __name__ == '__main__':

View File

@ -54,21 +54,11 @@ async def main_fn():
make_log("TON", "Withdraw command sent", level="info")
await asyncio.sleep(10)
platform_state = await toncenter.get_account(MY_PLATFORM_CONTRACT)
if not platform_state.get('code'):
make_log("TON", "Platform contract is not deployed, shutdown service..", level="info")
await send_status("ton_daemon", "Platform contract is not deployed, not working")
while True:
await asyncio.sleep(100)
while True:
try:
sw_seqno_value = await get_sw_seqno()
make_log("TON", f"Service running ({sw_seqno_value})", level="debug")
# with db_session() as session:
# for stored_content in session.query(StoredContent).filter(StoredContent.uploaded == False).all():
# pass

View File

@ -18,7 +18,7 @@ async def main_fn():
make_log("Uploader", "Service running", level="debug")
await uploader_loop()
await asyncio.sleep(5)
await send_status("uploader", f"working (seqno={seqno})")
await send_status("uploader_daemon", f"working (seqno={seqno})")
seqno += 1
except BaseException as e:
make_log("Uploader", f"Error: {e}", level="error")