You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
# Settings http://docs.gunicorn.org/en/stable/settings.html
|
|
import os
|
|
|
|
bind = 'unix:/tmp/gunicorn.sock'
|
|
backlog = 2048 # The number of pending connections
|
|
preload = True # Load application code before the worker processes are forked
|
|
|
|
workers = 2
|
|
worker_class = 'sync'
|
|
worker_connections = 1000
|
|
threads = 1
|
|
timeout = 120
|
|
keepalive = 2
|
|
|
|
reload = False
|
|
spew = False
|
|
check_config = False
|
|
|
|
daemon = False
|
|
pidfile = None
|
|
umask = 0
|
|
user = None
|
|
group = None
|
|
tmp_upload_dir = None
|
|
proc_name = None
|
|
|
|
# Logging
|
|
# -------
|
|
logconfig = '/opt/app/conf/gunicorn_logging.ini'
|
|
|
|
|
|
def post_fork(server, worker):
|
|
server.log.info("Worker spawned (pid: %s)", worker.pid)
|
|
|
|
|
|
def pre_fork(server, worker):
|
|
pass
|
|
|
|
|
|
def pre_exec(server):
|
|
server.log.info("Forked child, re-executing.")
|
|
|
|
|
|
def when_ready(server):
|
|
server.log.info("Server is ready. Spawning workers")
|
|
|
|
|
|
def worker_int(worker):
|
|
worker.log.info("Worker received INT or QUIT signal")
|
|
|
|
## get traceback info
|
|
import threading, sys, traceback
|
|
id2name = dict([(th.ident, th.name) for th in threading.enumerate()])
|
|
code = []
|
|
for threadId, stack in sys._current_frames().items():
|
|
code.append("\n# Thread: %s(%d)" % (id2name.get(threadId,""),
|
|
threadId))
|
|
for filename, lineno, name, line in traceback.extract_stack(stack):
|
|
code.append('File: "%s", line %d, in %s' % (filename,
|
|
lineno, name))
|
|
if line:
|
|
code.append(" %s" % (line.strip()))
|
|
worker.log.debug("\n".join(code))
|
|
|
|
|
|
def worker_abort(worker):
|
|
worker.log.info("Worker received SIGABRT signal")
|
|
|