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