Share this:

Like this:

Related

4 Responses

I have often thought that CPAN’s current discoverability is rather poor. It’s long been on my mind to create a wiki where CPAN stuff could be easily categorized – like the category pages that you now see on search.cpan.org, but maintained. You could then go to “System, Networking, IPC” > “Process Management”, and find Parallel::Queue and related modules there.

See also: IPC::ConcurrencyLimit which was extracted from our code at booking.com. We use the algorithm quite heavily. The module itself is used by some of our newer code, too, for running on up to 24 cores.

If you use it, just take care when forking since the underlying flocks are cloned, too, so you either need to release them in one of the processes or spawn processes another way. I usually opt for having an executable that can run in different modes, one of which is “spawn” to run all the other modes using system()’s fork&exec pattern.

@Peter – indexing “stuff” well seems to be a hard problem. There would definitely be value in a list of a subset of modules that are worth looking at and importantly why they are worth looking at. Is that what you intended for your wiki or was it to be more comprehensive?

@anonymous – I’m looking forward to all 4 books mentioned by chromatic although possibly the Kensho book the least if it only covers Task::Kensho modules. I am moderately familiar with all of the modules on the Task::Kensho list apart from DBIC.

A much more comprehensive list than Task::Kensho (that included stuff like Parallel::Queue) along with a very brief summary of each module would be great.

@Steffen – cheers for the pointer to IPC::ConcurrencyLimit. I definitely can see some places where I’d use it in our codebase (although it would not fit in the script I was talking about in the post of course)