HTTP callback fixes
- Added HTTPError catching around the callback request, to not mark the entry as failed, just log the exception. - Fixed bug where I forgot to actually fetch the entry before passing it to json_processing_callback. - Changed __main__ migration #6 to create the ProcessingMetaData table as it is currently, to prevent possible breakage if a siteadmin is lagging behind with his db migrations and more than one migration wants to fix stuff with the ProcessingMetaData table.
This commit is contained in:
parent
5354f954dc
commit
939d57a022
@ -106,5 +106,13 @@ def add_mediaentry_collected(db_conn):
|
|||||||
|
|
||||||
@RegisterMigration(6, MIGRATIONS)
|
@RegisterMigration(6, MIGRATIONS)
|
||||||
def create_processing_metadata_table(db):
|
def create_processing_metadata_table(db):
|
||||||
ProcessingMetaData.__table__.create(db.bind)
|
metadata = MetaData(bind=db.bind)
|
||||||
|
|
||||||
|
metadata_table = Table('core__processing_metadata', metadata,
|
||||||
|
Column('id', Integer, primary_key=True),
|
||||||
|
Column('media_entry_id', Integer, ForeignKey(MediaEntry.id),
|
||||||
|
nullable=False, index=True),
|
||||||
|
Column('callback_url', Unicode))
|
||||||
|
|
||||||
|
metadata_table.create()
|
||||||
db.commit()
|
db.commit()
|
||||||
|
@ -96,5 +96,5 @@ class ProcessMedia(Task):
|
|||||||
entry_id = args[0]
|
entry_id = args[0]
|
||||||
mark_entry_failed(entry_id, exc)
|
mark_entry_failed(entry_id, exc)
|
||||||
|
|
||||||
entry = mgg.database.MediaEntry.query.filter_by(id=entry_id)
|
entry = mgg.database.MediaEntry.query.filter_by(id=entry_id).first()
|
||||||
json_processing_callback(entry)
|
json_processing_callback(entry)
|
||||||
|
@ -16,8 +16,9 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import json
|
import json
|
||||||
|
import traceback
|
||||||
|
|
||||||
from urllib2 import urlopen, Request
|
from urllib2 import urlopen, Request, HTTPError
|
||||||
from urllib import urlencode
|
from urllib import urlencode
|
||||||
|
|
||||||
_log = logging.getLogger(__name__)
|
_log = logging.getLogger(__name__)
|
||||||
@ -67,7 +68,13 @@ def json_processing_callback(entry):
|
|||||||
headers=headers,
|
headers=headers,
|
||||||
data_parser=json.dumps)
|
data_parser=json.dumps)
|
||||||
|
|
||||||
urlopen(request)
|
try:
|
||||||
_log.debug('Processing callback for {0} sent'.format(entry))
|
urlopen(request)
|
||||||
|
_log.debug('Processing callback for {0} sent'.format(entry))
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
except HTTPError:
|
||||||
|
_log.error('Failed to send callback: {0}'.format(
|
||||||
|
traceback.format_exc()))
|
||||||
|
|
||||||
|
return False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user