making restart upon signal TERM + vars()
This commit is contained in:
parent
3eb8f65872
commit
7e36b6a74d
3 changed files with 44 additions and 10 deletions
|
@ -10,11 +10,14 @@ services:
|
||||||
# the websocket-server
|
# the websocket-server
|
||||||
websocket-server:
|
websocket-server:
|
||||||
stop_grace_period: 1s
|
stop_grace_period: 1s
|
||||||
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
PYTHONUNBUFFERED: true
|
PYTHONUNBUFFERED: true
|
||||||
build: 'websocket-server'
|
build: 'websocket-server'
|
||||||
expose:
|
expose:
|
||||||
- 1080
|
- 1080
|
||||||
|
volumes:
|
||||||
|
- ./websocket-server/entrypoint.py:/mnt/entrypoint.py
|
||||||
# the client
|
# the client
|
||||||
client-test-websocket:
|
client-test-websocket:
|
||||||
stop_grace_period: 1s
|
stop_grace_period: 1s
|
||||||
|
|
|
@ -1,22 +1,36 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import signal
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
from websockets.asyncio.server import serve
|
from websockets.asyncio.server import serve
|
||||||
|
|
||||||
|
connected_clients = set()
|
||||||
|
|
||||||
|
|
||||||
|
def sigterm_handler(_signo, _stack_frame):
|
||||||
|
# Raises SystemExit(0):
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
async def server(websocket):
|
async def server(websocket):
|
||||||
msg = await websocket.recv()
|
print("the handler ist called",websocket.remote_address,"vars",json.dumps(websocket.__dict__,indent=4,default=lambda o: '<not serializable>'));
|
||||||
print(f"IN : {msg}")
|
# while True:
|
||||||
|
# msg = await websocket.recv()
|
||||||
answer = f"echoing {msg}"
|
# print(f"IN : {msg}")
|
||||||
|
#
|
||||||
await websocket.send(answer)
|
# answer = f"echoing {msg}"
|
||||||
print(f"OUT: {answer}")
|
#
|
||||||
|
# await websocket.send(answer)
|
||||||
|
# print(f"OUT: {answer}")
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
async with serve(server, "0.0.0.0", 1080):
|
async with serve(server, "0.0.0.0", 1080):
|
||||||
await asyncio.get_running_loop().create_future()
|
await asyncio.get_running_loop().create_future()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
signal.signal(signal.SIGTERM, sigterm_handler)
|
||||||
|
print('AAAAANOWAAAsaa is this')
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,22 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
safeexec() {
|
||||||
|
CMD="$1"
|
||||||
|
shift
|
||||||
|
test -x "$CMD" && exec "$CMD" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
test "" = "$*" || { exec "$@"; }
|
test "" = "$*" || { exec "$@"; }
|
||||||
echo "running /entrypoint.py"
|
safeexec /mnt/entrypoint.py || safeexec /entrypoint.py
|
||||||
exec /entrypoint.py
|
#
|
||||||
|
#trap "true" USR2
|
||||||
|
#while true
|
||||||
|
#do
|
||||||
|
# echo "running /entrypoint.py"
|
||||||
|
# ( /mnt/entrypoint.py || /entrypoint.py ) &
|
||||||
|
# THEPID=$!
|
||||||
|
# wait
|
||||||
|
# test "$?" -gt 128 && {
|
||||||
|
# kill "$THEPID"
|
||||||
|
# } || break
|
||||||
|
#done
|
||||||
|
|
Loading…
Add table
Reference in a new issue