dev server reload
This commit is contained in:
parent
b144a6ab8b
commit
57bc4982e6
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -147,3 +147,4 @@ dump
|
|||
.vscode
|
||||
*dump.sql
|
||||
*.csv
|
||||
dev-server-status.txt
|
||||
|
|
21
main.py
21
main.py
|
@ -1,6 +1,6 @@
|
|||
import asyncio
|
||||
from importlib import import_module
|
||||
|
||||
from os.path import exists
|
||||
from ariadne import load_schema_from_path, make_executable_schema
|
||||
from ariadne.asgi import GraphQL
|
||||
from starlette.applications import Starlette
|
||||
|
@ -21,6 +21,8 @@ from services.stat.topicstat import TopicStat
|
|||
from services.stat.viewed import ViewedStorage
|
||||
from services.zine.gittask import GitTask
|
||||
from services.zine.shoutauthor import ShoutAuthorStorage
|
||||
from settings import DEV_SERVER_STATUS_FILE_NAME
|
||||
|
||||
import_module("resolvers")
|
||||
schema = make_executable_schema(load_schema_from_path("schema.graphql"), resolvers) # type: ignore
|
||||
|
||||
|
@ -45,6 +47,15 @@ async def start_up():
|
|||
git_task = asyncio.create_task(GitTask.git_task_worker())
|
||||
print(git_task)
|
||||
|
||||
async def dev_start_up():
|
||||
if exists(DEV_SERVER_STATUS_FILE_NAME):
|
||||
return
|
||||
else:
|
||||
with open(DEV_SERVER_STATUS_FILE_NAME, 'w', encoding='utf-8') as f:
|
||||
f.write('running')
|
||||
|
||||
await start_up()
|
||||
|
||||
|
||||
async def shutdown():
|
||||
await redis.disconnect()
|
||||
|
@ -64,3 +75,11 @@ app = Starlette(
|
|||
routes=routes,
|
||||
)
|
||||
app.mount("/", GraphQL(schema, debug=True))
|
||||
|
||||
dev_app = app = Starlette(
|
||||
debug=True,
|
||||
on_startup=[dev_start_up],
|
||||
middleware=middleware,
|
||||
routes=routes,
|
||||
)
|
||||
dev_app.mount("/", GraphQL(schema, debug=True))
|
||||
|
|
14
server.py
14
server.py
|
@ -1,8 +1,8 @@
|
|||
import sys
|
||||
|
||||
import os
|
||||
import uvicorn
|
||||
|
||||
from settings import PORT
|
||||
from settings import PORT, DEV_SERVER_STATUS_FILE_NAME
|
||||
|
||||
log_settings = {
|
||||
'version': 1,
|
||||
|
@ -54,6 +54,9 @@ if __name__ == "__main__":
|
|||
x = sys.argv[1]
|
||||
if x == "dev":
|
||||
print("DEV MODE")
|
||||
if os.path.exists(DEV_SERVER_STATUS_FILE_NAME):
|
||||
os.remove(DEV_SERVER_STATUS_FILE_NAME)
|
||||
|
||||
headers = [
|
||||
("Access-Control-Allow-Methods", "GET, POST, OPTIONS, HEAD"),
|
||||
("Access-Control-Allow-Origin", "http://localhost:3000"),
|
||||
|
@ -65,14 +68,15 @@ if __name__ == "__main__":
|
|||
("Access-Control-Allow-Credentials", "true"),
|
||||
]
|
||||
uvicorn.run(
|
||||
"main:app",
|
||||
"main:dev_app",
|
||||
host="localhost",
|
||||
port=8080,
|
||||
headers=headers,
|
||||
# log_config=LOGGING_CONFIG,
|
||||
log_level=None,
|
||||
access_log=True
|
||||
) # , ssl_keyfile="discours.key", ssl_certfile="discours.crt", reload=True)
|
||||
access_log=True,
|
||||
reload=True
|
||||
) # , ssl_keyfile="discours.key", ssl_certfile="discours.crt")
|
||||
elif x == "migrate":
|
||||
from migration import migrate
|
||||
|
||||
|
|
|
@ -25,3 +25,6 @@ for provider in OAUTH_PROVIDERS:
|
|||
|
||||
SHOUTS_REPO = "content"
|
||||
SESSION_TOKEN_HEADER = "Authorization"
|
||||
|
||||
# for local development
|
||||
DEV_SERVER_STATUS_FILE_NAME = 'dev-server-status.txt'
|
||||
|
|
Loading…
Reference in New Issue
Block a user