That makes the difference. Thank you!
Am Dienstag, 15. Januar 2013 18:21:30 UTC+1 schrieb Wyatt Baldwin:
>
> On Tuesday, January 15, 2013 4:39:50 AM UTC-8, Sascha Gottfried wrote:
>>
>> Hello group,
>> I am looking for a way to build up and keep my domain model in memory
>> during pyramid serves my application. This time I do not want to use a SQL
>> database or ZODB as the persistence layer. I currently maintain an URL
>> dispatch based pyramid app using ZODB - this is where my current pyramid
>> experience is coming from.
>>
>> Now I want to use pyramid to build an application to visualize data
>> loaded from large CSV files on local harddisk. I use traversal to map URLs
>> to folders and files. During application startup I create a basic resource
>> tree while using several plain python model classes. Typical application
>> usage should enlarge the resource tree by lazy loading child objects as
>> requested by users. Lazy loading takes several seconds. This should happen
>> only one time for every "resource" in the resource tree. My intention is to
>> keep the main application object(a.k.a resource tree) in memory during
>> several requests. Parsing CSV files during every request is way to slow.
>> This actually happens.
>>
>> As request by traversal based applications I do pass the root_factory to
>> the Configurator. The pyramid glossary cleary notes: "The “root factory”
>> of a Pyramid application is called on every request sent to the
>> application.". This way the application restarts building the resource tree
>> on every request.
>>
>> def main(global_config, **settings):
>> root = settings['root']
>> if root is None:
>> raise ValueError('virginia requires a root')
>>
>> def get_root(environ):
>> fs = Filesystem(os.path.abspath(os.path.normpath(root)))
>> directory = Directory(fs, root)
>> application = Application(directory)
>> return application
>>
>> config = Configurator(root_factory=get_root, settings=settings)
>>
>>
>> I already tried passing a singleton to the root_factory. I currently do
>> not use any caching/sessioning like beaker.
>> Any suggestions how to build up a resource tree at runtime that keeps
>> alive during requests??? Thanks for your answers!
>>
>
> Create the root object *outside* of `get_root()` and simply have
> `get_root()` return that object.
>
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/pylons-discuss/-/OijZWw6DmygJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en.