Update cronjob PIP
authorTim Düsterhus <duesterhus@woltlab.com>
Fri, 24 Feb 2023 14:43:50 +0000 (15:43 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Fri, 24 Feb 2023 14:44:20 +0000 (15:44 +0100)
- Showcase `<expression>`.
- Explain that unnamed cronjobs are no longer supported.

docs/migration/wsc55/php.md
docs/package/pip/cronjob.md
snippets/package/pip/cronjob.xml

index a15f0458355da1a45a1b24603fc09f02fae3ab39..84ddba5e14f58be41691d37028faa550c4a05b94 100644 (file)
@@ -299,6 +299,16 @@ The `name` attribute needs to be specified for all event listeners.
 
 Deleting unnamed event listeners still is possible to allow for a clean migration of existing listeners.
 
+#### Cronjob
+
+Installing unnamed cronjobs is no longer supported.
+The `name` attribute needs to be specified for all event listeners.
+
+Deleting unnamed cronjobs still is possible to allow for a clean migration of existing cronjobs.
+
+The cronjob PIP now supports the `<expression>` element, allowing to define the cronjob schedule using a full expression instead of specifying the five elements separately.
+
+
 #### Database
 
 The `$name` parameter of `DatabaseTableIndex::create()` is no longer optional.
index 7c149c0b317ad6cf1e97f9caa08af918c8676547..647d5270f30ab0206b2f4e9ef402ee78b531f1a7 100644 (file)
@@ -20,10 +20,10 @@ the class has to implement the `wcf\system\cronjob\ICronjob` interface.
 
 Provides a human readable description for the administrator.
 
-### `<start*>`
+### `<expression>`
 
-All of the five `startMinute`, `startHour`, `startDom` (Day Of Month), `startMonth`, `startDow` (Day Of Week) are required.
-They correspond to the fields in `crontab(5)` of a cron daemon and accept the same syntax.
+The cronjob schedule.
+The expression accepts the same syntax as described in [`crontab(5)`](https://linux.die.net/man/5/crontab) of a cron daemon.
 
 ### `<canbeedited>`
 
index 583b8a7426db7fc22b231513886865284e7dc43b..532b9895004688c1a876303301226584302ad174 100644 (file)
@@ -5,13 +5,9 @@
                        <classname>wcf\system\cronjob\ExampleCronjob</classname>
                        <description>Serves as an example</description>
                        <description language="de">Stellt ein Beispiel dar</description>
-                       <startminute>0</startminute>
-                       <starthour>2</starthour>
-                       <startdom>*/2</startdom>
-                       <startmonth>*</startmonth>
-                       <startdow>*</startdow>
+                       <expression>0 2 */2 * *</expression>
                        <canbeedited>1</canbeedited>
                        <canbedisabled>1</canbedisabled>
                </cronjob>
        </import>
-</data>
\ No newline at end of file
+</data>