Switch over to phusion baseimage. Prevent everything from daemonizing and start it with runit under phusion. Make workers trap and handle sigint and sigterm. Extend the reservation to 1hr for dockerfilebuild. Update nginx to remove the dependency on libgd. Merge the requirements and requirements enterprise files.

This commit is contained in:
jakedt 2014-04-11 13:32:45 -04:00
parent 14fba3ae7c
commit 576fbe4f0d
17 changed files with 87 additions and 63 deletions

View file

@ -1,5 +1,6 @@
import logging
import json
import signal
from threading import Event
from apscheduler.scheduler import Scheduler
@ -52,8 +53,16 @@ class Worker(object):
self._sched.add_interval_job(self.poll_queue, seconds=self._poll_period_seconds)
self._sched.add_interval_job(self.watchdog, seconds=self._watchdog_period_seconds)
signal.signal(signal.SIGTERM, self.join)
signal.signal(signal.SIGINT, self.join)
while not self._stop.wait(1):
pass
def join(self):
logger.debug('Waiting for running tasks to complete.')
self._sched.shutdown()
logger.debug('Finished.')
def join(self, signal_num=None, stack_frame=None):
logger.debug('Shutting down worker gracefully.')
self._stop.set()