fix listener

This commit is contained in:
carlomazzaferro 2021-11-25 15:49:36 +01:00
parent c5ef5c2f45
commit c34485c493
No known key found for this signature in database
GPG Key ID: 0CED3103EF7B2187
3 changed files with 16 additions and 16 deletions

View File

@ -10,6 +10,7 @@ from mev_inspect.crud.latest_block_update import (
find_latest_block_update, find_latest_block_update,
update_latest_block, update_latest_block,
) )
from mev_inspect.db import get_sessions
from mev_inspect.inspector import MEVInspector from mev_inspect.inspector import MEVInspector
from mev_inspect.provider import get_base_provider from mev_inspect.provider import get_base_provider
from mev_inspect.signal_handler import GracefulKiller from mev_inspect.signal_handler import GracefulKiller
@ -33,13 +34,14 @@ async def run():
killer = GracefulKiller() killer = GracefulKiller()
inspector = MEVInspector(rpc, None, None) inspector = MEVInspector(rpc)
base_provider = get_base_provider(rpc) base_provider = get_base_provider(rpc)
_, inspect_session = get_sessions()
while not killer.kill_now: while not killer.kill_now:
await inspect_next_block( await inspect_next_block(
inspector, inspector,
None, inspect_session,
base_provider, base_provider,
healthcheck_url, healthcheck_url,
) )

View File

@ -1,5 +1,5 @@
import os import os
from typing import Optional from typing import Optional, Tuple
from asyncio import current_task from asyncio import current_task
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
@ -51,3 +51,10 @@ def get_trace_session() -> Optional[async_scoped_session]:
return _get_session(uri) return _get_session(uri)
return None return None
def get_sessions() -> Tuple[async_scoped_session, Optional[async_scoped_session]]:
inspect_db_session = get_inspect_session()
trace_db_session = get_trace_session()
trace_db_session = trace_db_session() if trace_db_session is not None else None
return inspect_db_session, trace_db_session

View File

@ -2,15 +2,13 @@ import asyncio
import logging import logging
import traceback import traceback
from asyncio import CancelledError from asyncio import CancelledError
from typing import Tuple, Optional
from sqlalchemy.ext.asyncio import async_scoped_session
from web3 import Web3 from web3 import Web3
from web3.eth import AsyncEth from web3.eth import AsyncEth
from mev_inspect.block import create_from_block_number from mev_inspect.block import create_from_block_number
from mev_inspect.classifiers.trace import TraceClassifier from mev_inspect.classifiers.trace import TraceClassifier
from mev_inspect.db import get_inspect_session, get_trace_session from mev_inspect.db import get_sessions
from mev_inspect.inspect_block import inspect_block from mev_inspect.inspect_block import inspect_block
from mev_inspect.provider import get_base_provider from mev_inspect.provider import get_base_provider
@ -30,7 +28,7 @@ class MEVInspector:
self.max_concurrency = asyncio.Semaphore(max_concurrency) self.max_concurrency = asyncio.Semaphore(max_concurrency)
async def create_from_block(self, block_number: int): async def create_from_block(self, block_number: int):
_, trace_session = _get_sessions() _, trace_session = get_sessions()
return await create_from_block_number( return await create_from_block_number(
base_provider=self.base_provider, base_provider=self.base_provider,
w3=self.w3, w3=self.w3,
@ -39,7 +37,7 @@ class MEVInspector:
) )
async def inspect_single_block(self, block: int): async def inspect_single_block(self, block: int):
inspect_session, trace_session = _get_sessions() inspect_session, trace_session = get_sessions()
return await inspect_block( return await inspect_block(
inspect_session, inspect_session,
trace_session, trace_session,
@ -67,7 +65,7 @@ class MEVInspector:
traceback.print_exc() traceback.print_exc()
async def safe_inspect_block(self, block_number: int): async def safe_inspect_block(self, block_number: int):
inspect_session, trace_session = _get_sessions() inspect_session, trace_session = get_sessions()
async with self.max_concurrency: async with self.max_concurrency:
return await inspect_block( return await inspect_block(
inspect_session, inspect_session,
@ -77,10 +75,3 @@ class MEVInspector:
self.trace_classifier, self.trace_classifier,
block_number, block_number,
) )
def _get_sessions() -> Tuple[async_scoped_session, Optional[async_scoped_session]]:
inspect_db_session = get_inspect_session()
trace_db_session = get_trace_session()
trace_db_session = trace_db_session() if trace_db_session is not None else None
return inspect_db_session, trace_db_session