-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
Description
Hi everyone 👋
Happy new year to everyone, hope this one will be a safe and happy one for everyone 🙂
I’m opening this issue as a “open topic” about tasks scheduling in Symfony and mostly, to discuss about having a “Scheduler” in Symfony (thanks to a bundle or a component) .
As you may have noticed, I’ve opened a PR last year about adding a Scheduler component (which has been closed by the end of the year, for the full story, I’ve been working on it with Fabpot privately but nothing has been published for now) and the first impressions were pretty good, for now, the full source code is available here: https://github.com/Guikingone/symfony/tree/_component/scheduler/src/Symfony/Component/Scheduler.
So, what was the idea behind it?
First, as explained in the PR, Laravel has a dedicated “component” (actually, it’s more a sub-part of the console component) and it was strange for me that Symfony does not have its own, as Laravel is “mostly” built on top of Symfony components, I thought that having a “new/native component” could be a good option and help both communities to bring something in common (maybe thanks to PSR’s?).
Second, I’m still convinced that having a component/bundle could help Symfony applications to become more than just apps, think about tasks orchestration and so on, today, we use tools like Kubernetes scheduler, Dkron, Bistro and so on but what if your applications can schedule tasks and run it without having to think about a specific “infrastructure”?
Third, thanks to Messenger, RateLimiter and Symfony UX (more on this point later), we can now push Symfony application even further thanks to delayed operations, retry and real time features, this point leads me to something that I would love to have in Symfony:
Real time dashboard thanks to Symfony UX/API Platform (think about handling, creating and managing tasks using a real time dashboard)
So, what’s the current state of this issue? For now, I open this issue to debate about this idea and see if some people share this type of ideas and if yes, what could be added to the Symfony ecosystem to add this type of features, also, feel free to explain how you schedule tasks and how your applications are dealing with it.
Thanks again for the feedback and have a great day 🙂
PS: I’m already aware of https://github.com/zenstruck/schedule-bundle and I assume that the “experimentation” linked earlier is based on some parts of it (maybe this bundle could be added as a community recipe?)