I have a service that I'm writing in Python that allows users to schedule a task to happen at different intervals.  Examples of tasks would be:

Task A: do a status check for every 10 seconds
Task B: do a status check for every 3 seconds
Task C: do a status check for every 15 seconds

The tasks should run independently of each other.  I also want to make sure that Task A can't run again until it's previous attempt is complete.  Remember that the number of tasks is dynamic, and so in the interval at which they run.
I've looked at RabbitMQ, but am having a hard time deciding if it's capable of this sort of thing.
I have been using celery recently to do what you are trying to achieve. With celery you can create tasks which are essentially functions that you are distributed to a task queue. You can also make celery tasks run periodically, whether that means every x seconds or a more crontab style approach.
Look for periodic tasks in the celery documentation to see if it suits what you are trying to do. Celery uses rabbitmq or redis (primarily). Each task runs in its own separated thread from the main program.
Best tool for scheduling tasks at intervals?