GetMetricData() is going to give you a very good indication of how busy your server is, i.e. how many requests are running and how many are queued as well as other info.
It's the same info that you get from running cfstat
from the command line (you'll find that under {cfroot}\bin\cfstat.exe
).
However, knowing how busy you are at the very moment might not be very useful to you if you just call that function once. It might be better for you to log performance data to file or to a database table using Windows perfmon
. You can then get the average number of running/queued requests over the past 5 minutes (or whatever) and make your decision on whether to run your task.