kopia lustrzana https://github.com/bugout-dev/moonstream
Remove local session.
rodzic
218da46e47
commit
40f498e5a9
|
@ -4,13 +4,14 @@ import logging
|
||||||
import random
|
import random
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
from urllib.error import HTTPError
|
from urllib.error import HTTPError
|
||||||
|
|
||||||
from moonstreamdb.blockchain import AvailableBlockchainType
|
from moonstreamdb.blockchain import AvailableBlockchainType
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
from ..db import PrePing_SessionLocal, RO_pre_ping_engine
|
from ..db import pre_ping_engine, RO_pre_ping_engine
|
||||||
from ..settings import MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS
|
from ..settings import MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS
|
||||||
from .db import (
|
from .db import (
|
||||||
clean_labels_from_db,
|
clean_labels_from_db,
|
||||||
|
@ -110,9 +111,12 @@ def parse_metadata(
|
||||||
return
|
return
|
||||||
|
|
||||||
for address in tokens_uri_by_address:
|
for address in tokens_uri_by_address:
|
||||||
with yield_session_maker(engine=RO_pre_ping_engine) as db_session_read_only:
|
with yield_session_maker(
|
||||||
|
engine=RO_pre_ping_engine
|
||||||
|
) as db_session_read_only, yield_session_maker(
|
||||||
|
engine=pre_ping_engine
|
||||||
|
) as db_session:
|
||||||
try:
|
try:
|
||||||
db_session = PrePing_SessionLocal()
|
|
||||||
logger.info(f"Starting to crawl metadata for address: {address}")
|
logger.info(f"Starting to crawl metadata for address: {address}")
|
||||||
|
|
||||||
already_parsed = get_current_metadata_for_address(
|
already_parsed = get_current_metadata_for_address(
|
||||||
|
@ -177,8 +181,11 @@ def parse_metadata(
|
||||||
try:
|
try:
|
||||||
with db_session.begin():
|
with db_session.begin():
|
||||||
for token_uri_data in requests_chunk:
|
for token_uri_data in requests_chunk:
|
||||||
metadata = crawl_uri(token_uri_data.token_uri)
|
with ThreadPoolExecutor(max_workers=1) as executor:
|
||||||
|
future = executor.submit(
|
||||||
|
crawl_uri, token_uri_data.token_uri
|
||||||
|
)
|
||||||
|
metadata = future.result(timeout=10)
|
||||||
db_session.add(
|
db_session.add(
|
||||||
metadata_to_label(
|
metadata_to_label(
|
||||||
blockchain_type=blockchain_type,
|
blockchain_type=blockchain_type,
|
||||||
|
@ -214,9 +221,6 @@ def parse_metadata(
|
||||||
logger.error(err)
|
logger.error(err)
|
||||||
logger.error(f"Error while crawling metadata for address: {address}")
|
logger.error(f"Error while crawling metadata for address: {address}")
|
||||||
|
|
||||||
finally:
|
|
||||||
db_session.close()
|
|
||||||
|
|
||||||
|
|
||||||
def handle_crawl(args: argparse.Namespace) -> None:
|
def handle_crawl(args: argparse.Namespace) -> None:
|
||||||
"""
|
"""
|
||||||
|
|
Ładowanie…
Reference in New Issue