mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-24 23:39:05 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| 
 | |
| # See https://docs.gunicorn.org/en/stable/settings.html for
 | |
| # explanations of settings
 | |
| 
 | |
| bind = f'{os.getenv("PAPERLESS_BIND_ADDR", "[::]")}:{os.getenv("PAPERLESS_PORT", 8000)}'
 | |
| 
 | |
| workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 1))
 | |
| worker_class = "paperless.workers.ConfigurableWorker"
 | |
| timeout = 120
 | |
| preload_app = True
 | |
| 
 | |
| # https://docs.gunicorn.org/en/stable/faq.html#blocking-os-fchmod
 | |
| worker_tmp_dir = "/dev/shm"
 | |
| 
 | |
| 
 | |
| 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 = {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")
 |