Sure!
I like to use Stores for queues, since they are FIFO. So whatever generates server requests will just put requests into the queue:
server_queue = Store()
def request_generator():
while True:
yield env.timeout(some_time_var)
req_object = #some object with data about the request
yield server_queue.put(req_object)
Then, have your servers watch that queue:
class Server():
def __init__(self, params, queue):
#do init things
def run(self):
while True:
req_obj = yield self.queue.get()
yield env.timeout(req_object.runtime) # or whatever
Use the run method as a process and all your servers will wait for requests, and the first server in line gets the request.