Refactor + fault-tolerance
This commit is contained in:
parent
0da5f4e3e3
commit
3ab97b171a
11 changed files with 64 additions and 18 deletions
27
config/nginx.conf
Normal file
27
config/nginx.conf
Normal file
|
@ -0,0 +1,27 @@
|
|||
worker_processes 1;
|
||||
daemon off;
|
||||
error_log /dev/stdout warn;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
accept_mutex off;
|
||||
}
|
||||
|
||||
http {
|
||||
default_type application/json;
|
||||
access_log off;
|
||||
|
||||
server {
|
||||
listen 5921;
|
||||
location /api {
|
||||
proxy_set_header HOST $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
||||
proxy_redirect off;
|
||||
proxy_pass http://localhost:2903;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
import logging
|
||||
import sqlite3
|
||||
|
||||
from lbry_comment_server.settings import config
|
||||
from src.settings import config
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
|
17
src/data.conf
Normal file
17
src/data.conf
Normal file
|
@ -0,0 +1,17 @@
|
|||
location / {
|
||||
limit_except GET HEAD {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
limit_except GET HEAD {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
|
||||
location /api {
|
||||
limit_except GET HEAD POST {
|
||||
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ import typing
|
|||
import aiosqlite
|
||||
import nacl.hash
|
||||
|
||||
from lbry_comment_server.settings import config
|
||||
from src.settings import config
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -5,10 +5,10 @@ import asyncio
|
|||
from aiohttp import web
|
||||
from aiojobs.aiohttp import atomic
|
||||
|
||||
from lbry_comment_server.writes import write_comment
|
||||
from lbry_comment_server.database import get_claim_comments
|
||||
from lbry_comment_server.database import get_comments_by_id, get_comment_ids
|
||||
from lbry_comment_server.database import obtain_connection
|
||||
from src.writes import write_comment
|
||||
from src.database import get_claim_comments
|
||||
from src.database import get_comments_by_id, get_comment_ids
|
||||
from src.database import obtain_connection
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -5,13 +5,13 @@ import asyncio
|
|||
from aiohttp import web
|
||||
|
||||
import schema.db_helpers
|
||||
from lbry_comment_server.database import obtain_connection
|
||||
from lbry_comment_server.handles import api_endpoint
|
||||
from lbry_comment_server.settings import config
|
||||
from lbry_comment_server.writes import create_comment_scheduler, DatabaseWriter
|
||||
from src.database import obtain_connection
|
||||
from src.handles import api_endpoint
|
||||
from src.settings import config
|
||||
from src.writes import create_comment_scheduler, DatabaseWriter
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.DEBUG)
|
||||
# logger.setLevel(logging.DEBUG)
|
||||
|
||||
formatter = logging.Formatter(config['LOGGING_FORMAT'])
|
||||
debug_handler = logging.FileHandler(config['PATH']['LOG'])
|
||||
|
@ -86,14 +86,16 @@ async def stop_app(runner):
|
|||
await runner.cleanup()
|
||||
|
||||
|
||||
async def run_app(app, duration=3600):
|
||||
async def run_app(app):
|
||||
runner = None
|
||||
try:
|
||||
runner = web.AppRunner(app)
|
||||
await runner.setup()
|
||||
site = web.TCPSite(runner, config['HOST'], config['PORT'])
|
||||
await site.start()
|
||||
await asyncio.sleep(duration)
|
||||
while True:
|
||||
|
||||
await asyncio.sleep(2**63)
|
||||
except asyncio.CancelledError as cerr:
|
||||
pass
|
||||
finally:
|
|
@ -4,7 +4,7 @@ import logging
|
|||
import aiojobs
|
||||
from asyncio import coroutine
|
||||
|
||||
from lbry_comment_server.database import obtain_connection, create_comment
|
||||
from src.database import obtain_connection, create_comment
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -5,10 +5,10 @@ from faker.providers import internet
|
|||
from faker.providers import lorem
|
||||
from faker.providers import misc
|
||||
|
||||
from lbry_comment_server.database import get_comments_by_id, create_comment, get_comment_ids, create_comment_async, \
|
||||
from src.database import get_comments_by_id, create_comment, get_comment_ids, create_comment_async, \
|
||||
get_claim_comments
|
||||
from schema.db_helpers import setup_database, teardown_database
|
||||
from lbry_comment_server.settings import config
|
||||
from src.settings import config
|
||||
from tests.testcase import DatabaseTestCase, AsyncioTestCase
|
||||
|
||||
fake = faker.Faker()
|
||||
|
|
|
@ -4,9 +4,9 @@ from unittest.case import _Outcome
|
|||
|
||||
import asyncio
|
||||
|
||||
from lbry_comment_server.database import obtain_connection
|
||||
from src.database import obtain_connection
|
||||
from schema.db_helpers import setup_database, teardown_database
|
||||
from lbry_comment_server.settings import config
|
||||
from src.settings import config
|
||||
|
||||
|
||||
class AsyncioTestCase(unittest.TestCase):
|
||||
|
|
Loading…
Reference in a new issue