if you have a dual-apache setup, frontend proxy and backend mason, i'm 
sure you could set it up some mod_proxy caching. but technically, saving 
the file out and serving as suggested is "caching". then you could use a 
cron job to clean up files older than two days.

J Cook wrote:
> Thanks for the suggestions. I was thinking about storing it for later 
> but this is something where it doesn't have to stick around for long. I 
> was thinking that caching it for a day or two would be sufficient. Can I 
> cache a .pdf file?
> 
> Justin
> 
> Sherrard Burton wrote:
> 
>>fwiw, you might also want to think about a "store and serve" system, 
>>depending on how much volume you'll be handling or how much processing 
>>it takes to produce each pdf.
>>
>>we use a similar system for dynamic images using a PerlHandler. 
>>basically, the first time an image is requested, we generate it and save 
>>it to a file. from then on we just serve the file. but at the mason 
>>level you could use something like this:
>>
>>
>><%init>
>>my $file_name = ($r->filename =~ /.*?\/pdfs\/(.*?)\.pdf/gi);
>>generate_and_save_pdf($file_name);
>>
>>my $fh;
>>open ( $fh, $file_name );
>>
>>$m->clear_buffer();
>>$r->content_type ( 'application/pdf' );
>>$r->send_http_header;
>>$r->send_fd ( $fh );
>>close ( $fh);
>>
>>return;
>></%init>
>>
>>and since this code is in the dhandler, the ( ! -e $file_name ) is a given.
>>
>>i'm assuming from your earlier code that you already have a scheme for 
>>encoding the pertinent information into the url/file name. one thing i 
>>like better about this approach is that it uses an apache internal 
>>instead of having to read and handle binary data in a scalar, which i 
>>think can be troublesome because of charsets and input/output record 
>>seperators.
>>
>>and remember, watch the whitespace.
>>
>>
>>J Cook wrote:
>>  
>>
>>>I found the problem, it was in my session_handler.pl, which is pretty 
>>>much a stock version that I got off of masonhq.com for use with 
>>>MasonX::Request::WithApacheSession. I commented out:
>>>
>>># return -1 if $r->content_type && $r->content_type !~ m|^text/|io;
>>>
>>>out of my handler sub. Now it works fine but I'm wondering if this is 
>>>the best way to handle it - it seems this line is here to restrict my 
>>>mason app from serving anything other than a text/(html|plain) document. 
>>>Will commenting this out cause any problems?
>>>
>>>Justin
>>>Sherrard Burton wrote:
>>>
>>>    
>>>
>>>>john is right about the whitespace, but a 404 would have nothing to do 
>>>>with whether the content is generated on the fly or served from 
>>>>somewhere else on the filesystem.
>>>>
>>>>my guess is that something is not quite right with your mason setup. i 
>>>>would break it down to a simple test case where you have a dhandler that 
>>>>just dumps the apache headers or something simple like that, because it 
>>>>doesn't look like your dhandler is actually getting called. you could 
>>>>also create the same kind of test component in an actual file with a 
>>>>.html or .pdf extension to see if they are served and parsed by mason.
>>>>
>>>>
>>>>
>>>>John Williams wrote:
>>>> 
>>>>
>>>>      
>>>>
>>>>>You have carriage returns before and after <% $output %> which could be
>>>>>messing up your pdf, and which would definitely mess up a gif or jpeg.
>>>>>
>>>>>Try putting the output inside the <%init> section and abort when you are
>>>>>done, like this:
>>>>>
>>>>><%init>
>>>>># ...  generate pdf  ...
>>>>>$r->content_type('application/pdf');
>>>>>$m->clear_buffer;
>>>>>$m->print($output);
>>>>>$m->abort;
>>>>></%init>
>>>>>
>>>>>~ John Williams
>>>>>
>>>>>
>>>>>On Tue, 11 Jul 2006, J Cook wrote:
>>>>>
>>>>>
>>>>>   
>>>>>
>>>>>        
>>>>>
>>>>>>Hi,
>>>>>>
>>>>>>I have a module that generates a pdf file on the fly that I want to use
>>>>>>with Mason. So I have a directory named /pdfs and a dhandler that looks
>>>>>>like:
>>>>>>
>>>>>><%init>
>>>>>>my $file_name = ($r->filename =~ /.*?\/pdfs\/(.*?)\.pdf/gi);
>>>>>>$r->content_type('application/pdf');
>>>>>>my $output = generate_pdf($file_name);
>>>>>></%init>
>>>>>>
>>>>>><% $output %>
>>>>>>
>>>>>><%flags>
>>>>>>inherit => undef
>>>>>></%flags>
>>>>>>
>>>>>>And I have in httpd.conf I have:
>>>>>>
>>>>>><FilesMatch "(\.html|.pdf)$">
>>>>>>  SetHandler  perl-script
>>>>>>  PerlHandler MyApp::Mason
>>>>>></FilesMatch>
>>>>>>
>>>>>>First off the file_name must match a database row, so generate_pdf can
>>>>>>use that info to make the pdf. So when I call something like:
>>>>>>http://example.com/pdfs/12345.pdf
>>>>>>I want to see a pdf pop up, but all I get is a 404 'Not Found' error. On
>>>>>>masonhq.com in the FAQs I read:
>>>>>>
>>>>>>"Use mod_perl's $r->content_type function to set the appropriate MIME
>>>>>>type. This will allow you to output, for example, a GIF file, even if
>>>>>>your component is called dynamicImage.html."
>>>>>>
>>>>>>Does this mean that Mason cannot serve a pdf file that is generated on
>>>>>>the fly like this? Do I need to name it with a .html extension and hope
>>>>>>this doesn't break in certain browsers? Or is it something in my code
>>>>>>above that is wrong?
>>>>>>
>>>>>>Justin
>>>>>>
>>>>>>
>>>>>>-------------------------------------------------------------------------
>>>>>>Using Tomcat but need to do more? Need to support web services, security?
>>>>>>Get stuff done quickly with pre-integrated technology to make your job 
>>>>>>easier
>>>>>>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>>>_______________________________________________
>>>>>>Mason-users mailing list
>>>>>>Mason-users@lists.sourceforge.net
>>>>>>https://lists.sourceforge.net/lists/listinfo/mason-users
>>>>>>
>>>>>>     
>>>>>>          
>>>>>
>>>>>-------------------------------------------------------------------------
>>>>>Using Tomcat but need to do more? Need to support web services, security?
>>>>>Get stuff done quickly with pre-integrated technology to make your job 
>>>>>easier
>>>>>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>>_______________________________________________
>>>>>Mason-users mailing list
>>>>>Mason-users@lists.sourceforge.net
>>>>>https://lists.sourceforge.net/lists/listinfo/mason-users
>>>>>   
>>>>>        
>>>>
>>>>-------------------------------------------------------------------------
>>>>Using Tomcat but need to do more? Need to support web services, security?
>>>>Get stuff done quickly with pre-integrated technology to make your job 
>>>>easier
>>>>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>_______________________________________________
>>>>Mason-users mailing list
>>>>Mason-users@lists.sourceforge.net
>>>>https://lists.sourceforge.net/lists/listinfo/mason-users
>>>>
>>>> 
>>>>      
>>>
>>>
>>>-------------------------------------------------------------------------
>>>Using Tomcat but need to do more? Need to support web services, security?
>>>Get stuff done quickly with pre-integrated technology to make your job easier
>>>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>_______________________________________________
>>>Mason-users mailing list
>>>Mason-users@lists.sourceforge.net
>>>https://lists.sourceforge.net/lists/listinfo/mason-users
>>>    
>>
>>
>>-------------------------------------------------------------------------
>>Using Tomcat but need to do more? Need to support web services, security?
>>Get stuff done quickly with pre-integrated technology to make your job easier
>>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>_______________________________________________
>>Mason-users mailing list
>>Mason-users@lists.sourceforge.net
>>https://lists.sourceforge.net/lists/listinfo/mason-users
>>
>>  
> 
> 
> 
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Mason-users mailing list
> Mason-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mason-users


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to