##// END OF EJS Templates
celery: fixed bootstrap of beat workers
super-admin -
r4889:609be9c6 default
parent child Browse files
Show More
@@ -124,7 +124,7 b' def on_preload_parsed(options, **kwargs)'
124 ini_vars = options['ini_var']
124 ini_vars = options['ini_var']
125
125
126 if ini_file is None:
126 if ini_file is None:
127 print('You must provide the paste --ini argument')
127 print('You must provide the --ini argument to start celery')
128 exit(-1)
128 exit(-1)
129
129
130 options = None
130 options = None
@@ -136,20 +136,25 b' def on_preload_parsed(options, **kwargs)'
136 setup_logging(ini_file)
136 setup_logging(ini_file)
137
137
138
138
139 @signals.celeryd_init.connect
139 def _init_celery(app_type=''):
140 def on_celeryd_init(sender=None, conf=None, **kwargs):
141 from rhodecode.config.middleware import get_celery_config
140 from rhodecode.config.middleware import get_celery_config
142
141
143 log.debug('Bootstrapping RhodeCode application...')
142 log.debug('Bootstrapping RhodeCode application for %s...', app_type)
144
143
145 ini_file = conf['RC_INI_FILE']
144 ini_file = celery_app.conf['RC_INI_FILE']
146 options = conf['RC_INI_OPTIONS']
145 options = celery_app.conf['RC_INI_OPTIONS']
147
146
147 env = None
148 try:
148 try:
149 env = bootstrap(ini_file, options=options)
149 env = bootstrap(ini_file, options=options)
150 except Exception:
150 except Exception:
151 log.exception('Failed to bootstrap RhodeCode APP')
151 log.exception('Failed to bootstrap RhodeCode APP')
152
152
153 if not env:
154 raise EnvironmentError(
155 'Failed to load pyramid ENV. '
156 'Probably there is another error present that prevents from running pyramid app')
157
153 log.debug('Got Pyramid ENV: %s', env)
158 log.debug('Got Pyramid ENV: %s', env)
154
159
155 celery_settings = get_celery_config(env['registry'].settings)
160 celery_settings = get_celery_config(env['registry'].settings)
@@ -159,11 +164,21 b' def on_celeryd_init(sender=None, conf=No'
159 registry=env['registry'], closer=env['closer'],
164 registry=env['registry'], closer=env['closer'],
160 celery_settings=celery_settings)
165 celery_settings=celery_settings)
161
166
167
168 @signals.celeryd_init.connect
169 def on_celeryd_init(sender=None, conf=None, **kwargs):
170 _init_celery('celery worker')
171
162 # fix the global flag even if it's disabled via .ini file because this
172 # fix the global flag even if it's disabled via .ini file because this
163 # is a worker code that doesn't need this to be disabled.
173 # is a worker code that doesn't need this to be disabled.
164 rhodecode.CELERY_ENABLED = True
174 rhodecode.CELERY_ENABLED = True
165
175
166
176
177 @signals.beat_init.connect
178 def on_beat_init(sender=None, conf=None, **kwargs):
179 _init_celery('celery beat')
180
181
167 @signals.task_prerun.connect
182 @signals.task_prerun.connect
168 def task_prerun_signal(task_id, task, args, **kwargs):
183 def task_prerun_signal(task_id, task, args, **kwargs):
169 ping_db()
184 ping_db()
General Comments 0
You need to be logged in to leave comments. Login now