text: import datetime
  import fnmatch
  import os
  import resource
  import subprocess
  from django.conf import settings
  
  
  errorlog = "/var/log/horizon/gunicorn.log"
  capture_output = True
  
  # maxrss ceiling in kbytes
  MAXRSS_CEILING = 512000
  
  
  def worker_abort(worker):
      path = ("/proc/%s/fd") % os.getpid()
      contents = os.listdir(path)
      upload_dir = getattr(settings, 'FILE_UPLOAD_TEMP_DIR', '/tmp')
      pattern = os.path.join(upload_dir, '*.upload')
  
      for i in contents:
          f = os.path.join(path, i)
          if os.path.exists(f):
              try:
                  link = os.readlink(f)
                  if fnmatch.fnmatch(link, pattern):
                      worker.log.info(link)
                      os.remove(link)
              except OSError:
                  pass
  
  
  def when_ready(server):
      subprocess.check_call(["/usr/bin/horizon-assets-compress"])
  
  
  def post_worker_init(worker):
      worker.nrq = 0
      worker.restart = False
  
  
  def pre_request(worker, req):
      worker.nrq += 1
      if worker.restart:
          worker.nr = worker.max_requests - 1
          maxrss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
          msg = "%(date)s %(uri)s %(rss)u" % ({'date': datetime.datetime.now(),
                                               'uri': getattr(req, "uri"),
                                               'rss': maxrss})
          worker.log.info(msg)
  
  
  def post_request(worker, req, environ, resp):
      worker.nrq -= 1
      if not worker.restart:
          maxrss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
          if maxrss > MAXRSS_CEILING and worker.nrq == 0:
              worker.restart = True
  