durusmail: quixote-users: Re: rtemplate: utility for reloading changed PTLfiles
rtemplate: utility for reloading changed PTL files
2003-12-06
Re: rtemplate: utility for reloading changed PTL files
2003-12-06
2003-12-06
2003-12-06
2003-12-06
Re: rtemplate: utility for reloading changed PTL files
2003-12-07
Re: rtemplate: utility for reloading changed PTL files
2003-12-07
Re: rtemplate: utility for reloading changed PTL files
2003-12-08
2003-12-07
2003-12-08
2003-12-06
Re: rtemplate: utility for reloading changed PTL files
2003-12-08
Re: rtemplate: utility for reloading changed PTLfiles
2003-12-08
2003-12-08
Re: rtemplate: utility for reloading changed PTLfiles
Jason E. Sibre
2003-12-08
> I wouldn't use this approach for any module declaring classes of any
> objects that persisted beyond a single request. Then again, I probably
> wouldn't use reload() in that case, either. ;-) But it seems to work
> nicely for PTL modules and UI classes that define throwaway objects.
>
> ...
>
> -- Graham


I ran smack into this problem... My design style (evidently) is different
from yours, making the reloading of modules tricky, and not something that
can just be tacked on as an afterthought.

I tend to use Quixote to publish object namespaces, rather than module
namespaces (with the exception of the root, which is a package).  As a
result, I am almost always picky about what I import where; I use from x
import y, z...  This makes reloading the module just about useless.
Further, I generally have objects that survive the page request, so even if
I reload the class def, my old copy of the class is still based on the old
code, and will be until I recreate it.  I never do, in some instances.  I
expect it to be created at app start up, and be available from then on.

The 'solution' I've used so far is to have a Restart link available in my
apps that tells the app to exit.  FastCGI takes care of actually restarting
it for me.  It's not perfect, which is why I was excited over your idea.
(I'm persisting session info to disk, so it works out ok.)

Unfortunaely, due to my approach, Neil's idea isn't immediately useful to
me, either (I'd still have to recreate my objects).

I think what it boils down to is that my design approach just isn't 'dynamic
source code' friendly.

It has been educational working with this, and I may try some experiments
with a more module-namespace approach in the future.  I just felt it was a
mite cumbersome to map UI concepts directly to modules/packages, but very
easy to map them to class instances.

Jason



reply