diff options
author | jpope777 <jpope@jpope.org> | 2014-12-01 10:56:55 -0600 |
---|---|---|
committer | jpope777 <jpope@jpope.org> | 2014-12-01 10:56:55 -0600 |
commit | fd90f4c27304f42a5a392011e3ec6b5bc8c41aae (patch) | |
tree | 83ea18a9f81f21bb12c3f0fd177905c150ca742c /mediagoblin/processing/task.py | |
parent | b5ced2db1bb133407bca328c8e43634c1e9319c8 (diff) | |
parent | fbb3ee504168cd4ceb258bf98658c1bc32d8cafd (diff) | |
download | mediagoblin-fd90f4c27304f42a5a392011e3ec6b5bc8c41aae.tar.lz mediagoblin-fd90f4c27304f42a5a392011e3ec6b5bc8c41aae.tar.xz mediagoblin-fd90f4c27304f42a5a392011e3ec6b5bc8c41aae.zip |
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Diffstat (limited to 'mediagoblin/processing/task.py')
-rw-r--r-- | mediagoblin/processing/task.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mediagoblin/processing/task.py b/mediagoblin/processing/task.py index 1a21c6d2..0c254767 100644 --- a/mediagoblin/processing/task.py +++ b/mediagoblin/processing/task.py @@ -155,5 +155,19 @@ class ProcessMedia(celery.Task): entry = mgg.database.MediaEntry.query.filter_by(id=entry_id).first() json_processing_callback(entry) + mgg.database.reset_after_request() + + def after_return(self, *args, **kwargs): + """ + This is called after the task has returned, we should clean up. + + We need to rollback the database to prevent ProgrammingError exceptions + from being raised. + """ + # In eager mode we get DetachedInstanceError, we do rollback on_failure + # to deal with that case though when in eager mode. + if not celery.app.default_app.conf['CELERY_ALWAYS_EAGER']: + mgg.database.reset_after_request() + tasks.register(ProcessMedia) |