pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.79k stars 1.73k forks source link

Enhanced Scheduling with Conditional Task Execution in Pterodactyl #5033

Open GGLinnk opened 8 months ago

GGLinnk commented 8 months ago

Is there an existing feature request for this?

Describe the feature you would like to see.

Pterodactyl features a scheduling system resembling cron tasks, which operates based on real-time triggered events or intervals.

One drawback is the system's inability to initiate scheduled tasks if the host server starts after the specified time, limiting its effectiveness in certain scenarios. For example, this limitation could lead to missed task executions when the host server reboots beyond the scheduled timeframe. Like a server startup.

Describe the solution you'd like.

A new feature could be added to Pterodactyl to enable conditional scheduling, allowing users to set specific criteria for task execution. This would enhance planning capabilities by providing more flexibility and intelligence in automation workflows.

Additional context to this request.

No response

Boy132 commented 8 months ago

Duplicate of #4160

GGLinnk commented 8 months ago

Duplicate of #4160

No, not really, Unlike https://github.com/pterodactyl/panel/issues/4160, which suggests adding conditions to cron-based schedules, mine focuses on real-time permanent schedules. This difference is crucial as it addresses missed task executions due to delayed server startups. By introducing conditional scheduling for real-time checks, users gain better control over task execution, enhancing flexibility effectively.

It's not only about conditional but mainly about absolute planning that it's respected whenever the main server is started after or before the planned task.

I may have not explained correctly though. Sorry about that.

Zand3rsCode commented 6 months ago

To be able to shedule force wipe (on rust server) with special commands we need too be able to use [ "$(date +\%m --date '7 days ago')" != "$(date +\%m)" ]

0 19 4 [ "$(date +\%m --date '7 days ago')" != "$(date +\%m)" ] &&

This job has a condition that checks if the month of the date 7 days ago is different from the current month, which will be true only on the first Thursday of the month.

Also same if it is a normal thursday. this is the only thing stopping me from doing more automations and make my life easier!

GGLinnk commented 6 months ago

To be able to shedule force wipe (on rust server) with special commands we need too be able to use [ "$(date +%m --date '7 days ago')" != "$(date +%m)" ]

0 19 4 [ "$(date +%m --date '7 days ago')" != "$(date +%m)" ] &&

This job has a condition that checks if the month of the date 7 days ago is different from the current month, which will be true only on the first Thursday of the month.

Also same if it is a normal thursday. this is the only thing stopping me from doing more automations and make my life easier!

This requires the server to be on. I don't want to use hacks that I need to find here and there for x or y game server. I need a native solution for real scheduling and not cron-based jobs.