Extension architecture help required

Max Kanat-Alexander mkanat at bugzilla.org
Mon May 7 22:12:45 UTC 2012

	Yeah, what Byron says sounds good. Also, another option would be to add 
a hook to Bugzilla::DB::bz_commit_transaction. You could store things in 
$self in the extension during bug_end_of_update and trigger them when 
the transaction was committed. $self in an extension is an object that's 
re-created for every page call, so you're fairly safe there.


On 04/29/2012 07:27 PM, Byron Jones wrote:
> hey gerv,
> Gervase Markham wrote:
>> In my Sync extension:
>> http://bzr.mozilla.org/bugzilla/extensions/sync/
>> I am using the bug_end_of_update hook to do syncing once a bug is
>> updated.
> i have an extension which is designed to push updates to other systems
> which currently poll bugzilla for updates (pulse, elastic search caches,
> metrics, etc).
> https://github.com/globau/bugzilla-push
> it's extremely close to completion, and is a q2 goal.
> i deal with the issue you've encountered by performing serialisation of
> the bug at the time the update is made, in my case to JSON. these are
> inserted into a custom table which a custom daemon polls and sends. i
> don't use the jobqueue system because that doesn't guarantee the order
> of the messages, which is important when you're sending update messages
> (especially when a remote system is down).
> since i already have a working system for sending bug updates which
> deals correctly with ordering of the updates, as well as queuing
> messages when the remote system is down, another option would be for the
> update-pushing part of your extension to utilise my bugzilla-push
> extension and be dropped in as another connector. see
> https://github.com/globau/bugzilla-push/tree/master/Push/lib/Connector
> -byron
> --
> byron - irc:glob - bugzilla.mozilla.org team -

Max Kanat-Alexander
Chief Architect, Community Lead, and Release Manager
Bugzilla Project

More information about the developers mailing list