# HG changeset patch # User Mads Kiilerich # Date 1473115878 -7200 # Node ID d3957c90499bdaef0f593f0e333f4f57df2eebea # Parent 4f2e231df22209543591320c3625addb29f08331 celery: use Celery 3 config settings instead of deprecated As warned by: The 'CELERYD_LOG_LEVEL' setting is scheduled for deprecation in version 2.4 and removal in version v4.0. Use the --loglevel argument instead remove celeryd.log.file and celeryd.log.level from the ini file. Instead, use: paster celeryd my.ini --loglevel=DEBUG --logfile=my.log or, in the future: gearbox celeryd -c my.ini -- --loglevel=DEBUG --logfile=my.log As warned by: The 'BROKER_VHOST' setting is scheduled for deprecation in version 2.5 and removal in version v4.0. Use the BROKER_URL setting instead The 'BROKER_HOST' setting is scheduled for deprecation in version 2.5 and removal in version v4.0. Use the BROKER_URL setting instead The 'BROKER_USER' setting is scheduled for deprecation in version 2.5 and removal in version v4.0. Use the BROKER_URL setting instead The 'BROKER_PASSWORD' setting is scheduled for deprecation in version 2.5 and removal in version v4.0. Use the BROKER_URL setting instead The 'BROKER_PORT' setting is scheduled for deprecation in version 2.5 and removal in version v4.0. Use the BROKER_URL setting instead change the .ini template to use: broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost As warned by: Starting from version 3.2 Celery will refuse to accept pickle by default. The pickle serializer is a security concern as it may give attackers the ability to execute any command. It's important to secure your broker from unauthorized access when using pickle, so we think that enabling pickle should require a deliberate action and not be the default choice. If you depend on pickle then you should set a setting to disable this warning and to be sure that everything will continue working when you upgrade to Celery 3.2:: CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml'] You must only enable the serializers that you will actually use. change the .ini template to use: celery.accept.content = pickle (Note: The warning is there for a reason. It would probably be nice to change from pickle to something like json. That is left as an exercise.) diff -r 4f2e231df222 -r d3957c90499b development.ini --- a/development.ini Tue Sep 06 00:51:18 2016 +0200 +++ b/development.ini Tue Sep 06 00:51:18 2016 +0200 @@ -314,14 +314,12 @@ #################################### use_celery = false -broker.host = localhost -broker.vhost = rabbitmqhost -broker.port = 5672 -broker.user = rabbitmq -broker.password = qweqwe + +## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq: +broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost celery.imports = kallithea.lib.celerylib.tasks - +celery.accept.content = pickle celery.result.backend = amqp celery.result.dburi = amqp:// celery.result.serialier = json @@ -330,11 +328,9 @@ #celery.amqp.task.result.expires = 18000 celeryd.concurrency = 2 -#celeryd.log.file = celeryd.log -celeryd.log.level = DEBUG celeryd.max.tasks.per.child = 1 -## tasks will never be sent to the queue, but executed locally instead. +## If true, tasks will never be sent to the queue, but executed locally instead. celery.always.eager = false #################################### diff -r 4f2e231df222 -r d3957c90499b kallithea/bin/template.ini.mako --- a/kallithea/bin/template.ini.mako Tue Sep 06 00:51:18 2016 +0200 +++ b/kallithea/bin/template.ini.mako Tue Sep 06 00:51:18 2016 +0200 @@ -311,14 +311,12 @@ <%text>#################################### use_celery = false -broker.host = localhost -broker.vhost = rabbitmqhost -broker.port = 5672 -broker.user = rabbitmq -broker.password = qweqwe + +<%text>## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq: +broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost celery.imports = kallithea.lib.celerylib.tasks - +celery.accept.content = pickle celery.result.backend = amqp celery.result.dburi = amqp:// celery.result.serialier = json @@ -327,11 +325,9 @@ #celery.amqp.task.result.expires = 18000 celeryd.concurrency = 2 -#celeryd.log.file = celeryd.log -celeryd.log.level = DEBUG celeryd.max.tasks.per.child = 1 -<%text>## tasks will never be sent to the queue, but executed locally instead. +<%text>## If true, tasks will never be sent to the queue, but executed locally instead. celery.always.eager = false <%text>#################################### diff -r 4f2e231df222 -r d3957c90499b kallithea/config/deployment.ini_tmpl --- a/kallithea/config/deployment.ini_tmpl Tue Sep 06 00:51:18 2016 +0200 +++ b/kallithea/config/deployment.ini_tmpl Tue Sep 06 00:51:18 2016 +0200 @@ -307,14 +307,12 @@ #################################### use_celery = false -broker.host = localhost -broker.vhost = rabbitmqhost -broker.port = 5672 -broker.user = rabbitmq -broker.password = qweqwe + +## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq: +broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost celery.imports = kallithea.lib.celerylib.tasks - +celery.accept.content = pickle celery.result.backend = amqp celery.result.dburi = amqp:// celery.result.serialier = json @@ -323,11 +321,9 @@ #celery.amqp.task.result.expires = 18000 celeryd.concurrency = 2 -#celeryd.log.file = celeryd.log -celeryd.log.level = DEBUG celeryd.max.tasks.per.child = 1 -## tasks will never be sent to the queue, but executed locally instead. +## If true, tasks will never be sent to the queue, but executed locally instead. celery.always.eager = false #################################### diff -r 4f2e231df222 -r d3957c90499b kallithea/lib/celerypylons/loader.py --- a/kallithea/lib/celerypylons/loader.py Tue Sep 06 00:51:18 2016 +0200 +++ b/kallithea/lib/celerypylons/loader.py Tue Sep 06 00:51:18 2016 +0200 @@ -7,7 +7,7 @@ to_pylons = lambda x: x.replace('_', '.').lower() to_celery = lambda x: x.replace('.', '_').upper() -LIST_PARAMS = """CELERY_IMPORTS ADMINS ROUTES""".split() +LIST_PARAMS = """CELERY_IMPORTS ADMINS ROUTES CELERY_ACCEPT_CONTENT""".split() class PylonsSettingsProxy(object): diff -r 4f2e231df222 -r d3957c90499b kallithea/tests/test.ini --- a/kallithea/tests/test.ini Tue Sep 06 00:51:18 2016 +0200 +++ b/kallithea/tests/test.ini Tue Sep 06 00:51:18 2016 +0200 @@ -316,14 +316,12 @@ #################################### use_celery = false -broker.host = localhost -broker.vhost = rabbitmqhost -broker.port = 5672 -broker.user = rabbitmq -broker.password = qweqwe + +## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq: +broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost celery.imports = kallithea.lib.celerylib.tasks - +celery.accept.content = pickle celery.result.backend = amqp celery.result.dburi = amqp:// celery.result.serialier = json @@ -332,11 +330,9 @@ #celery.amqp.task.result.expires = 18000 celeryd.concurrency = 2 -#celeryd.log.file = celeryd.log -celeryd.log.level = DEBUG celeryd.max.tasks.per.child = 1 -## tasks will never be sent to the queue, but executed locally instead. +## If true, tasks will never be sent to the queue, but executed locally instead. celery.always.eager = false ####################################