The manager approach is a viable solution, but I believe it has the additional hassles of:
- writing a separate manager module
- starting and stopping the separate manager module when the program runs/stops
- detecting failures: as the manager is one more component in your system, what happens if it goes wrong? what happens if it segfaults? what happens if it does not work properly?
| [reply] |
Sure, it adds complexity with all that that implies. Sometimes, if the application is already large enough, there's something that is already a manager (who started the separate worker processes, for example?). In that case, the marginal costs of moving the responsibility of queueing coordination to the manager are not as high as writing it from zero. As always, YMMV.
| [reply] |