-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
61 lines (49 loc) · 1.79 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import sys
import uvicorn
import logging
import os
import argparse
from app import app
from seafile_thumbnail.thumbnail_task_manager import thumbnail_task_manager
from threading import Thread
from seafile_thumbnail.settings import LOG_DIR, TASK_WORKERS
class ThumbnailServer(Thread):
def __init__(self, task_workers):
Thread.__init__(self)
thumbnail_task_manager.run(task_workers)
config = uvicorn.Config(app, port=8001)
self._server = uvicorn.Server(config)
def run(self):
logging.info('Starting seafile thumbnail server...')
self._server.run()
def run_server(loglevel='info'):
level = logging.INFO
if loglevel == 'debug':
level = logging.DEBUG
seafile_log_to_stdout = os.getenv('SEAFILE_LOG_TO_STDOUT', 'false') == 'true'
formatter = '[%(asctime)s] [%(levelname)s] %(name)s:%(lineno)s %(message)s'
if seafile_log_to_stdout:
formatter = '[thumbnail-server] [%(asctime)s] [%(levelname)s] %(name)s:%(lineno)s %(message)s'
log_kw = {
'format': formatter,
'datefmt': '%Y-%m-%d %H:%M:%S',
'level': level,
'stream': sys.stdout
}
else:
log_kw = {
'format': formatter,
'datefmt': '%Y-%m-%d %H:%M:%S',
'level': level,
'filename': f'{LOG_DIR}/thumbnail.log'
}
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR, exist_ok=True)
logging.basicConfig(**log_kw)
thumbnail_server = ThumbnailServer(TASK_WORKERS)
thumbnail_server.run()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Seafile Thumbnail Server')
parser.add_argument('--loglevel', type=str, default='info', help='log level')
args = parser.parse_args()
run_server(args.loglevel)