Is there a dynamic scheduling system for better implementation of a subscription based payment system?
I have a long winding solution that I implemented for a similar project.

First I save the schedule as a model in the database
Next I have a cron job that gets the entries that need to be run for that day
Then schedule those jobs as normal Celery jobs by setting the ETA based on the time set in the schedule model.

This way Celery just runs off the messages from Redis in my case. Try it if don't get a direct answer.
I was making a subscription payment system from scratch in python in Django. I am using celery-beat for a scheduled task with RabbitMQ as a queue broker. django_celery_beat uses DatabaseScheduler which is causing problems.

Takes a long time to dispatch simple-task to the broker. I was using it to expire users. For some expiration tasks, it took around 60 secs - 150secs. But normally it used to take 100ms to 500ms.
Another problem is that, while I re-schedule some task, while it is being written into the database it blocks the scheduler for some bizarre reason and multiple tasks are missed because of that.

I have been looking into Apache Airflow because it is marketed as an industry-standard scheduling solution.
But I don't think, it is applicable and feasible for my small project.
If you have worked and played with a subscription payment system, can you advise me how to go forward with this?