[Handel] Handel 0.99_02 bugs and problems...

tom.kirkpatrick at virusbtn.com tom.kirkpatrick at virusbtn.com
Tue Jun 6 14:23:36 CEST 2006


Thanks for your hard work rushing an _2 out the door...

I did send these email earlier but have a feeling they never got through 
for some reason... So here they are again (all combined into one lovely 
message ;)
   - apologies if this is the second time your reading this :p

-----------
Passing my schema into schema_instance() takes an age and a half to 
process. My schema is rather large (51 tables in total), but still.

I tried preloading my Handel subclasses in my apache statup.pl

It took 1:32 until apache had finished loading and spawned off it's 
children as opposed to 0:21 without it. But that's not the end of the 
story... Even with it preloaded like that, it then takes a further 42 
seconds for each child to make it's own connection and Handel to do it's 
package molesting...

I guess there's little point of preloading it in Apache anyway since each 
child need's to do it's own connection stuff regardless, but

there has to be a better way!!!
-----------
-----------
It seems that the vast majority of time is spent on the injection of the 
Handel components:

If I comment out all the component injection code in Handel::Storage, I 
can use My::Handel::Order in:
28.833u 0.132s 0:29.15 99.3%    1072+27519k 0+0io 0pf+0w

with that code left in, it takes:
102.245u 0.171s 1:43.30 99.1%   1071+34448k 0+0io 0pf+0w

And I don't even want any of them injected into my schemas!

I know Handel::Storage tries to detect if the components are needed or 
not, but because My::Handel::Order subclasses Handel::Order, these 
components are loaded by default... How can I remove them from my 
subclass?
-----------
-----------
$my_order->reconcile() does not seem to like using classes that have the 
new InflateColumn::DateTime component loaded. I think it's to do with the 
way that copy_cart_items tries to make a copy of the order item. I guess 
it's bypassing the deflate() method or something.
_____
_____
I have some order items that were generated with reconcile() (after 
messing around with it and forcing an item in there)... but they don't 
seem to be complete objects. That is, all the methods and columns that I 
added to my OrderItem subclass are not available - I can only use those 
methods which are defined in Handel::Order::Item. I can however access my 
own methods/relationships etc by doing:

$order->items->first->storage->my_method

rather than 

$order->items->first->my_method
(Can't locate object method "my_method" via package "VBTN::Order::Item" at 
(eval 688) line 89. 

Sorry bout all that!

-- 
Tom Kirkpatrick
Web Developer - Virus Bulletin



More information about the Handel mailing list