thorn.app¶
Thorn Application.
-
class
thorn.app.Thorn(dispatcher=None, set_as_current=True)[source]¶ Thorn application.
-
Subscriber¶
-
Subscribers¶
-
config¶
-
disable_buffer(owner=None)[source]¶ Disable buffering.
Raises: BufferNotEmpty– if there are still items in the- buffer when disabling.
-
dispatchers= {u'celery': u'thorn.dispatch.celery:Dispatcher', u'default': u'thorn.dispatch.base:Dispatcher', u'disabled': u'thorn.dispatch.disabled:Dispatcher'}¶
-
enable_buffer(owner=None)[source]¶ Start buffering up events instead of dispatching them directly.
Note
User will be responsible for flushing the buffer via
flush_buffer(), say periodically or at the end of a web request.
-
environments= set([u'thorn.environment.django:DjangoEnv'])¶
-
event_cls= u'thorn.events:Event'¶
-
flush_buffer(owner=None)[source]¶ Flush events accumulated while buffering active.
Note
This will force send any buffered events, but the mechanics of how this happens is up to the dispatching backend:
defaultSends buffered events one by one.
celerySends a single message containing all buffered events, a worker will then pick that up and execute the web requests.
-
model_event_cls= u'thorn.events:ModelEvent'¶
-
on_commit¶
-
request_cls= u'thorn.request:Request'¶
-
reverse¶
-
settings_cls= u'thorn.conf:Settings'¶
-
signals¶
-
subclass_with_self(Class, name=None, attribute=u'app', reverse=None, keep_reduce=False, **kw)[source]¶ Subclass an app-compatible class.
App-compatible means the class has an ‘app’ attribute providing the default app, e.g.:
class Foo(object): app = None.Parameters: Class (Any) – The class to subclass.
Keyword Arguments: - name (str) – Custom name for the target subclass.
- attribute (str) – Name of the attribute holding the app.
Default is
"app". - reverse (str) – Reverse path to this object used for pickling
purposes. E.g. for
app.AsyncResultuse"AsyncResult". - keep_reduce (bool) – If enabled a custom
__reduce__implementation will not be provided.
-