in reply to Testing many devices - are threads the answer?


While threading can do the job, I'd do something much simpler: I'd simply assign each WAC to a group, and run the same program multiple times, each instance handling a single group. That way, you get through all your WACs quickly enough (for some definition of quickly enough), and without the headache of worrying about threads.

It's not that I'm afraid of threads (I rather like them for some things). It's just that problems like this don't really need it. I generally think of using threads when I have multiple tasks that need to be coordinated with each other. But in your case, you don't really care1 if you test WAC #3 a couple more times per hour than WAC #7, so long as they're all tested at least X times per hour. If after adding some WACs you can't hit your minimum test interval, just split off some groups and start a few more instances--so it's really not hard to scale. Using multiple instances of the program even makes it easy to distribute the testing among multiple servers with no great effort.

1 At least, I don't *think* you care...


  • Comment on Re: Testing many devices - are threads the answer?

Replies are listed 'Best First'.
Re^2: Testing many devices - are threads the answer?
by McDarren (Abbot) on May 12, 2009 at 14:42 UTC
    Thanks Roboticus,

    This was actually an approach that I had already considered, and was probably going to be my fall back if I couldn't find a more elegant solution. I think my main issue with this approach is that it is very much "hit and miss" in terms of creating the groupings - insofar as you can't really predict how long the testing of any particular group will take, and there might be very large discrepancies in individual run times, which I'd really have no control over. My preference is for a solution that will (roughly) do them all in one go, which I can run at fairly frequent intervals - say every 5 minutes.

    Darren :)