I've created a fairly complex machine that's designed to produce many of the more labor-intensive items in Tekkit (MFSU, HV-Solar array, etc.). I want to set the whole thing up to be controlled by a user-terminal that can request a specific item in a certain quantity. Doing so delivers the item in that quantity to the user from a stockpile, and then runs the machine to produce the necessary replacements for the stockpile. This way the user doesn't need to wait for the item to be produced, but the stockpile is always kept full for future requests. The machine is modular and each individual component that needs to be crafted is built by a module which is in turn controlled by it's own computer that receives requests from either the user or other control computers in a sort of cascade effect.
For example, if I order 1 generator from the user-terminal, it sends a request for 1 generator to the generator-computer. The generator-computer sends a redstone signal to the generator-module which produces 1 generator. It also sends a request to the IronFurnace-computer and the REBattery-computer for 1 of each of those components to replace the ones consumed by the generator-module. The IronFurnace-computer sends a redstone signal to the IronFurnace-module which produces one of those, and the REBattery-computer does the same to produce another battery from the REBattery-module. Also, the REBattery-computer sends request to the CopperWire-computer to produce replacement copper wire, etc.
The issue I already see coming is that some of the more expensive items take up to several minutes to build replacements for. If I need to make several requests for the same part, I have to space my redstone signals by as much as .5 seconds to ensure the machine can react to each signal properly. The computers I have controlling the various modules of my machine and requesting the replacement parts would be too busy sending out measured redstone signals to listen for any new requests made by the user-terminal or even by other control computers. I could simply force the user to wait until the system is free again, but I'd rather not. I've thought that I could perhaps introduce another intermediate computer that handles requests from the user by creating a queue, and waits until whatever machine component is required has finished its current order before sending any queued orders. Am I over-thinking this? Is there a way to have a computer listen for a rednet event while it is executing other code? Or do I need a queue computer to be dedicated to this task? I eagerly await the ingenuity of others.
I can also explain the machine in greater detail if necessary.