X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-Attribute-Cached.git;a=blobdiff_plain;f=lib%2FMooseX%2FAttribute%2FCached.pm;fp=lib%2FMooseX%2FAttribute%2FCached.pm;h=2635443bcf210e11286dbd5a96007a5f1ce96f9b;hp=fb0f0acba66652df1d5f70e0f78dad6300f74a24;hb=d0e2ab777136c23d0e580661234ecf6c5fcfa9cf;hpb=b555289715def910c2c6620f3e8587b48e2d8760 diff --git a/lib/MooseX/Attribute/Cached.pm b/lib/MooseX/Attribute/Cached.pm index fb0f0ac..2635443 100644 --- a/lib/MooseX/Attribute/Cached.pm +++ b/lib/MooseX/Attribute/Cached.pm @@ -2,6 +2,7 @@ package MooseX::Attribute::Cached; use Moose; + =head1 NAME MooseX::Attribute::Cached; Cache your Moose Attribute Value @@ -27,7 +28,7 @@ our $VERSION = '0.01'; package MyApp; use Moose; - use MooseX::Attribute::Cached; + with 'MooseX::Attribute::Cached'; ## Cache Storage Options Declared Manually has 'shared_key_1' => ( @@ -80,16 +81,22 @@ every across machines, presuming you are using a distributed cache, like Memcached. All instances with access to the same cache will share and update a common value. That way: -1) All instances share the same attribute slot. Updates made by one +1) All instances share the same attribute value. Updates made by one attribute are seen by all instances, even on different servers as long as -they share a distributed caching system (such as Memcached). - +they share a distributed caching system (such as Memcached). + 2) It can be a sort of 'persistance lite' although I highly recommend using a real persistance system, such as a database or L. - + 3) You could probably use this as a sort of expensive class attribute, but you will likely be more happy with L +Please keep in mind that the process of setting and getting values in and out +of the Cache is asynchronise. When a value is updated, this is no 'Publish / +Subscribe' system running to let all the instances using this attribute know it +ha been changed. Also, since the last value that was retrieved from the Cache +is stored by the instance, any references will point to this. + At this time, this supports two Cachings systems, Memcached and FastMmap. If you have need for other cache types, adding a driver for it should be easy, so please send your patches and test cases. @@ -133,7 +140,7 @@ L =head1 COPYRIGHT & LICENSE -Copyright 2008 John Napiorkowski, all rights reserved. +Copyright 2008 John Napiorkowski This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.