Have you considered some sort of yield-management incentive, such as offering a higher grade to students who submit during less-busy periods? :P
Although I don't know anything about the handin server, or very much about load-balancing, just riffing: A simple round-robin HTTP proxy probably won't maximize processor utilization. Maybe that doesn't matter. If it matters, I might start with a single HTTP server that puts jobs in a queue, and let dedicated racket-process-per-cpu processes pull them out one by one. I might try just using the filesystem for the queue. Something like: Handin jobs are saved to files under a "to-do" dir. Workers claim jobs by renaming a files into an "underway" dir, one"), and later clean delete that and plop a result file into a "done" dir. The HTTP server watches that, sends the response. (You could instead use a "real" database, or even a whole messaging system. But this might be one of those cases where the filesystem is the least-worst choice.) -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.