def add_message(event_type, payload, session=None):
"""
Add a message to be submitted asynchronously to a message broker.
:param event_type: The type of the event as a string, e.g., NEW_DID.
:param payload: The message payload. Will be persisted as JSON.
:param session: The database session to use.
"""
try:
new_message = Message(event_type=event_type, payload=json.dumps(payload))
except TypeError, e:
raise InvalidObject('Invalid JSON for payload: %(e)s' % locals())
except DatabaseError, e:
if re.match('.*ORA-12899.*', e.args[0]) \
or re.match('.*1406.*', e.args[0]):
raise RucioException('Could not persist message, payload too large')
new_message.save(session=session, flush=False)
评论列表
文章目录