Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

Personally, I would only keep one boss thread that feeds the workers. As you seem to have the filesystem shared between the machines, you can keep your queue either as a file or have the second machine connect via TCP to the boss thread to read available files from it.

Having two boss threads scan the same directory is a recipe for disaster, or at least for lots of interesting failure scenarios.

My favourite approach is to organize the queues as directories and have the workers move the files between the directories:

/work/incoming /work/processing /work/done

This will be problematic if your (network) filesystem does not support atomic rename. I think that NFS does not support atomic rename.

If your filesystem supports atomic append, you can simply have each worker append a line with its machine name, pid and the filename to one common file and then reread the file to see if another thread snatched the file before it. This would mean that the file grows, but you can either move that file away or just truncate it from time to time. Truncating would mean that files get processed twice, which might not be acceptable.


In reply to Re: Sync item list between perl scripts, across servers by Corion
in thread Sync item list between perl scripts, across servers by reinaldo.gomes

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-04-19 11:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found