Scheduling
General
Scheduling can be a very helpful thingy for the server. You can schedule commands, which get executed in the right time, what you set. The ToolBox scheduler is a detailed one, you can set commands for an exact time point in the future, or set up periodically running ones. Moreover, you can set the begin and the end timepoint of the periods, set timeouts and cycles.
Structure
Timed Task:
Timing(s)* | Defines: when the task will be called. | (default: none) | |
Task* | List of commands to be executed. | (default: none) | |
| Timeout | A time interval. | (default: -1) | |
| Cycles | The cycles the timed-task is added to. | (default: none) |
* required
Task
The task is the action, which happens when the timed-task gets called. It is a list of commands, which get executed on the server-side without any further settings.
Timing
The timings do define when the action will be called.
It can be:
- an exact point in time
- simply periodical
- detailed periodical
Exact time point
Signs an exact time point in the future, when the action will get called.
Periodical
All periodically set timed-tasks have a start point in time, when since it will get periodically, and an end point, when it stops. However, they can left unset, then the script will be executed on the next available time and won't ever be stopped, so from the time you add that period it will work until you remove it from the tasklist.
Simple periods
asd
Detailed periods
asd
Complex periods
[under writing]
This is a very advanced type of periods, because it is very tricky. It's goal is to execute a process periodically in an interval of time, and that again, periodically. Thru an example: executing my script from monday 12:00 to tuesday 12:00 every 10 minutes, and I want to do that every week, like that: "every week . It is more complicated, isn't it? To do this, we must have more than one timed-tasks. One of them will be the process itself. Set up the intervals between the time points, so the periods will be "every week period from:10h to:1d12h by 10m"--> period from:10h to:1d12h by 10m"
Timeouts
Ami még említendő, az a ciklusok és a késlekedési idő. Ez a kettő szerintem fontos tud még lenni, ha időzítésekről van szó. A timeout annyit jelent, hogy ha az adott időpontban a szerver pl. offline, de aztán beindítják, akkor eme intervallumon belül "bepótlásra" kerül a feladat, ha már letelt a timeout (pl. 1 óra eltelt az időpont óta) akkor már nem fut le. Egy "Jó reggelt!" script nyilván ne fusson le délben, ha akkor indul a szerver, de a napi log fájlok elpakolása scripttel vagy hasonló feladat jó lenne, ha lefutna mégis (jóreggeltnek van timoutja ~1,2 óra, pokolónak nincs).
Cycles
Ja igen, és a ciklusok (cycles). Ez annyiból áll, hogy a TimedTask-ok (vagyis az időzített feladatok) hozzárendelhetőek ciklusokhoz. Ennek az a lényege, hogy a we mondjuk nappal tiltva van, éjjel mehet, akkor 2 script van ami ezt szabályozza, ezek egy közös ciklusban kell legyenek. Mikor beindul a szerver teszem azt, akkor megnézi hogy a ciklusnak melyik az utolsó eleme, amelynek le kellett volna futnia, és ha nem az futott utoljára, akkor meghívja, vagyis mindig az aktuális állapot lesz jelen a szerveren és nem marad bent véletlenül a we nappalra is pl., de ugye ez csak egy példa (meg így fogjuk használni).\\
Other resrouces in hungarian
Az időzítés elég sokszínű lesz, lehet konkrét időpontot megadni, pl. május15 14:53, lehet periodikusat megadni, pl. minden nap 12:00-kor lefusson, ugyanígy lehet nem csak napi, de heti, havi, vagy évit is, ahogy olyat is ami másodpercenként fut le. Ezeket nem írtam meg külön, azért is lehet extrémebb időket is beállítani, mert 1 mechanizmus végzi a periódus beolvasását. Lehet olyat, hogy 1 Task-hoz több Timing tartozik, pl. egy bizonyos akció (Task) fusson le egy héten 2x, egyszer kedden délután 5 órakor, máskor pedig csütörtökön hajnali 2kor. Ez így néz ki (- jelek csak behúzásnak vannak): Timing: - - every week 2d 17h - - every week 4d 2h Task: - - /parancs 1 - - /parancs 2 Vagyis minden hét kezdőpontja a 0, onnantól +2nap17óra időpontban fut le, illetve +4nap2óra időpontban. Lehet komplexebb periódust is megadni, pl. most csütörtök 14:24 perctől kezdve minden 5. percben fusson le 1x, egészen péntek 5 óráig. Ez is megoldható lesz, bár gondolom kevesebb igény lesz rá grin hangulatjel Ez is a rendszer működése miatt magától jött létre, csak a megadási formát kell kitalálnom hozzá. Ha azt szeretnénk, hogy 5 óra múlva fusson le (a jelenhez képest) akkor arra lesz parancs, de az ugye egy konkrét időt jelöl meg a jövőben amit kiszámol a +5 óra alapján. Ezen kívül van még 1 tulajdonság, hogy ha a napi script pl. több napig nincs meghívva, akkor a következő indulásnál minden lefutást bepótoljon, vagy csak egyet. Ha egyáltalán bepótol ugye. Ezt még vizuálisan is lefestem majd nektek, meg a bukkit népének, de elég alapvető dolgok ezek és hasznosak és nem bonyolultak amúgy. Tehát ennyiből állna az időzítés, a we-hez ez úgy kapcsolódik, hogy a Task 1 parancs lesz: /tb setconfig WE-Lock.max-count 400 Illetve még1, ami visszanöveli majd a megengedett számra, vagy leveszi a blokkszám-tilalmat.
Comments