[Question] Scalability
Closed this issue · 2 comments
I am interested in using ndscheduler in a solution that I am developing but I have the following requirement:
-
My app will use the ndscheduler API to generate about 30,000 schedules per day within 2 hours time frame.
-
These schedules will run only once and their purpose will be to send an attendance confirmation email to a customer.
-
Schedules will have their execution start date and time distributed over a time period of 6 hours during the day.
-
After the schedule is successfully executed it can be deleted from the ndscheduler.
Does the ndscheduler support this workload?
Thank you.
Why don't you use a distributed task queue such as Huey, RQ, or Celery for this? Or you can use a combo of a task queue and NDS (though to me, it seems like an overkill)
So I think you could do this, but if you have jobs that will only run once, you probably want a distributed task queue for that. There's not really any reason generating 30K schedules a day wouldn't work, but we certainly haven't tested it.
If you want things to run at certain times, I'd recommend instead having a job that starts up periodically during the day and checks some other distributed queue (e.g. SQS, RabbitMQ) to see what work needs to be done.