[IMP] gevent: no longer a command-line flag (always used in multi-process, never otherwise)

The internal flag is in openerp.__init__ (as the multi_process flag).

bzr revid: vmt@openerp.com-20130118152511-57u4gxyolz0hd4y8
This commit is contained in:
Vo Minh Thu 2013-01-18 16:25:11 +01:00
parent a4120a879a
commit ed0a292f5d
6 changed files with 8 additions and 16 deletions

View File

@ -51,6 +51,8 @@ wsgi.register_wsgi_handler = wsgi.wsgi_server.register_wsgi_handler
# its own copy of the data structure and we don't need to care about
# locks between threads.
multi_process = False
# Is the server running with gevent.
evented = False
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -230,20 +230,10 @@ def main(args):
check_root_user()
openerp.tools.config.parse_config(args)
if openerp.tools.config.options["gevent"]:
_logger.info('Using gevent mode')
import gevent.monkey
gevent.monkey.patch_all()
import gevent_psycopg2
gevent_psycopg2.monkey_patch()
check_postgres_user()
openerp.netsvc.init_logger()
report_configuration()
if openerp.tools.config.options["gevent"]:
_logger.info('Using gevent mode')
config = openerp.tools.config
configure_babel_localedata_path()

View File

@ -34,6 +34,7 @@ import web_services
import web_services
import wsgi_server
import openerp
import openerp.modules
import openerp.netsvc
import openerp.osv
@ -91,13 +92,13 @@ def start_services():
# Start the WSGI server.
wsgi_server.start_service()
# Start the main cron thread.
if not openerp.tools.config.options["gevent"]:
if not openerp.evented:
cron.start_service()
def stop_services():
""" Stop all services. """
# stop services
if not openerp.tools.config.options["gevent"]:
if not openerp.evented:
cron.stop_service()
netrpc_server.stop_service()
wsgi_server.stop_service()

View File

@ -354,7 +354,7 @@ class WorkerLongPolling(Worker):
self.watchdog_timeout = None
def start(self):
config.options["gevent"] = True
openerp.evented = True
_logger.info('Using gevent mode')
import gevent.monkey
gevent.monkey.patch_all()

View File

@ -424,7 +424,7 @@ def serve():
# TODO Change the xmlrpc_* options to http_*
interface = config['xmlrpc_interface'] or '0.0.0.0'
port = config['xmlrpc_port']
if not openerp.tools.config.options["gevent"]:
if not openerp.evented:
httpd = werkzeug.serving.make_server(interface, port, application, threaded=True)
else:
from gevent.wsgi import WSGIServer

View File

@ -108,7 +108,6 @@ class configmanager(object):
help="specify additional addons paths (separated by commas).",
action="callback", callback=self._check_addons_path, nargs=1, type="string")
group.add_option("--load", dest="server_wide_modules", help="Comma-separated list of server-wide modules default=web")
group.add_option("--gevent", dest="gevent", action="store_true", my_default=False, help="Activate the GEvent mode, this also desactivate the cron.")
parser.add_option_group(group)
# XML-RPC / HTTP
@ -412,7 +411,7 @@ class configmanager(object):
'list_db', 'xmlrpcs', 'proxy_mode',
'test_file', 'test_enable', 'test_commit', 'test_report_directory',
'osv_memory_count_limit', 'osv_memory_age_limit', 'max_cron_threads', 'unaccent',
'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request', 'gevent'
'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request',
]
for arg in keys: