To keep it simple, try threads and Thread::Queue module. That will keep it all 'in-house'.
On Wed, Apr 3, 2013 at 11:28 AM, David Larochelle <[email protected]>wrote: > Thanks, > > I think that Redis would work but the system currently uses > Postgresql, I'm looking for something simpler than having to maintain > another service. > (We're actively looking at NoSQL solutions but that would be a huge > rearchitecting of the system.) > > Is there a clean way to do this with pipes or tmp files or something > similar? > > -- > > David > > On Wed, Apr 3, 2013 at 10:55 AM, Anthony Caravello <[email protected]>wrote: > >> I've generally had luck with threads in Perl 5.10 and beyond, though if >> you're sharing variables containing large amounts of data they can be >> inefficient. Storing your data in Redis is often handy and fast, and >> Redis::List works nicely as a queuing system, even if you use threads. >> >> Hope that helps, >> Tony Caravello >> >> >> On Wed, Apr 3, 2013 at 10:47 AM, Ricker, William >> <[email protected]>wrote: >> >>> This would be a great topic for a meeting, either a report later on what >>> you found and how you used it, or as a workshop to evaluate your options. >>> >>> [FYI, Schedule for next Tuesday is Federico will update us on his >>> embedded Perl hardware hacking project.] >>> >>> bill@$dayjob >>> #include <not_speaking_for_the_firm> >>> >>> -----Original Message----- >>> From: Boston-pm [mailto:boston-pm-bounces+william.ricker= >>> [email protected]] On Behalf Of David Larochelle >>> Sent: Wednesday, April 03, 2013 10:34 AM >>> To: Boston Perl Mongers >>> Subject: [Boston.pm] Passing large complex data structures between >>> process >>> >>> I'm trying to optimize a database driven web crawler and I was wondering >>> if >>> anyone could offer any recommendations for interprocess communications. >>> >>> Currently, the driver process periodically queries a database to get a >>> list of URLs to crawler. It then stores these url's to be downloaded in a >>> complex in memory and pipes them to separate processes that do the actual >>> downloading. The problem is that the database queries are slow and block >>> the driver process. >>> >>> I'd like to rearchitect the system so that the database queries occur in >>> the background. However, I'm unsure what mechanism to use. In theory, >>> threads would be ideally suited for this case but I'm not sure how stable >>> they are (I'm running Perl 5.14.1 with 200+ cpan modules). >>> >>> Does anyone have any recommendations? >>> >>> Thanks, >>> >>> David >>> >>> _______________________________________________ >>> Boston-pm mailing list >>> [email protected] >>> http://mail.pm.org/mailman/listinfo/boston-pm >>> >>> _______________________________________________ >>> Boston-pm mailing list >>> [email protected] >>> http://mail.pm.org/mailman/listinfo/boston-pm >>> >> >> > _______________________________________________ Boston-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/boston-pm

