MCPcopy
hub / github.com/benoitc/gunicorn / reload

Method reload

gunicorn/arbiter.py:503–574  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

501 os.execvpe(self.START_CTX[0], self.START_CTX['args'], environ)
502
503 def reload(self):
504 # Track reload stats
505 self._stats['reloads'] += 1
506
507 old_address = self.cfg.address
508
509 # reset old environment
510 for k in self.cfg.env:
511 if k in self.cfg.env_orig:
512 # reset the key to the value it had before
513 # we launched gunicorn
514 os.environ[k] = self.cfg.env_orig[k]
515 else:
516 # delete the value set by gunicorn
517 try:
518 del os.environ[k]
519 except KeyError:
520 pass
521
522 # reload conf
523 self.app.reload()
524 self.setup(self.app)
525
526 # reopen log files
527 self.log.reopen_files()
528
529 # do we need to change listener ?
530 if old_address != self.cfg.address:
531 # close all listeners
532 for lnr in self.LISTENERS:
533 lnr.close()
534 # init new listeners
535 self.LISTENERS = sock.create_sockets(self.cfg, self.log)
536 listeners_str = ",".join([str(lnr) for lnr in self.LISTENERS])
537 self.log.info("Listening at: %s", listeners_str)
538
539 # do some actions on reload
540 self.cfg.on_reload(self)
541
542 # unlink pidfile
543 if self.pidfile is not None:
544 self.pidfile.unlink()
545
546 # create new pidfile
547 if self.cfg.pidfile is not None:
548 self.pidfile = Pidfile(self.cfg.pidfile)
549 self.pidfile.create(self.pid)
550
551 # set new proc_name
552 util._setproctitle("master [%s]" % self.proc_name)
553
554 # Remember current worker age before spawning new workers
555 last_worker_age = self.worker_age
556
557 # spawn new workers
558 for _ in range(self.cfg.workers):
559 self.spawn_worker()
560

Callers 3

handle_hupMethod · 0.95

Calls 12

setupMethod · 0.95
spawn_workerMethod · 0.95
manage_workersMethod · 0.95
reap_workersMethod · 0.95
PidfileClass · 0.90
on_reloadMethod · 0.80
unlinkMethod · 0.80
createMethod · 0.80
valuesMethod · 0.80
reopen_filesMethod · 0.45
closeMethod · 0.45
infoMethod · 0.45