| # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Run minijack frontend as FastCGI application.""" |
| |
| |
| import logging |
| import multiprocessing |
| from flup.server.fcgi_fork import WSGIServer |
| |
| import factory_common # pylint: disable=W0611 |
| from cros.factory.minijack.frontend import wsgi |
| from cros.factory.shopfloor.launcher import constants |
| |
| |
| LOCALHOST = '127.0.0.1' |
| # TODO(rong): Move to constants or make it an option. |
| MINIJACK_FCGI_PORT = constants.DEFAULT_BIND_PORT + 4 |
| |
| |
| def main(): |
| logging.basicConfig(level=logging.INFO, format='%(message)s') |
| bind_address = (LOCALHOST, MINIJACK_FCGI_PORT) |
| cpu_count = multiprocessing.cpu_count() |
| fork_args = { |
| 'minSpare': 1, |
| 'maxSpare': min(cpu_count * 2, 8), |
| 'maxChildren': max(cpu_count * 4, 16), |
| 'maxRequests': 64} |
| server = WSGIServer(wsgi.application, bindAddress=bind_address, **fork_args) |
| server.run() |
| |
| |
| if __name__ == '__main__': |
| main() |