Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scheduling accuracy, Quartz.NET vs Rx 2.0

Has anyone compared the scheduling accuracy (how close to the scheduled time the call actually occurs) between Quartz.NET and Reactive Extensions 2.0?

The only references I could find on the subject are this thread which compares them as methods of scheduling and the Rx 2.0 RC announcement blog post which explains improvements in absolute timing but neither really dwells on this.

like image 234
georgiosd Avatar asked Mar 18 '23 20:03

georgiosd


2 Answers

I'm going to confess that I've not done the comparison, but I'd be willing to lay odds that the answer is that they have they same level of accuracy to within any margin that is going to be relevant to you!

Chris has the right idea, the limiting factor is the timer resolution of .NET (which, skipping a ton of detail, is basically ~15ms).

I can't see a good reason to choose between these libraries on the basis of their scheduling accuracy - both are reasonable given the above constraint. If ~15 ms is accurate enough, pick the one that delivers the API most suited to your needs.

If it isn't, you'll typically need to use native code. As soon as .NET is involved, deterministic RT behaviour exits stage left!

like image 155
James World Avatar answered Mar 31 '23 11:03

James World


Seeing as how C# doesn't support real-time computing, the answer to this question is sort of irrelevant.

That being said, you should maybe use both. Rx provides the ability to implement your own schedulers, so you can certainly create one which uses Quartz.NET. If you go that route, you end up with all of the power of Rx, plus all of the power of Quartz.NET. Win win.

I would start with Rx, and add Quartz.NET whenever Rx doesn't meet all of your needs.

like image 40
cwharris Avatar answered Mar 31 '23 11:03

cwharris