@@ -925,7 +925,7 @@ Schedule your Reoccurring Tasks with Background Jobs!
925925APIs and Commands can be scheduled to run at either a ` TimeSpan ` or
926926[ CRON Expression] ( https://github.com/HangfireIO/Cronos?tab=readme-ov-file#cron-format ) interval, e.g:
927927
928- ### CRON Expression Examples
928+ ## CRON Expression Examples
929929
930930``` csharp
931931// Every Minute Expression
@@ -1010,28 +1010,6 @@ jobs.RecurringCommand<CheckUrlsCommand>("Check URLs", Schedule.EveryMinute,
10101010If no name is provided, the Command's Name or APIs Request DTO will be used
10111011:::
10121012
1013- ### Interned Cronos
1014-
1015- A major source of friction in .NET Libraries and most Frameworks from all platforms in general is dependency conflicts.
1016- E.g. Conflicting versions of JSON.NET have plagued many a .NET library and framework for several years, something that
1017- never impacted ServiceStack Apps since we maintain our own fast/flexible JSON Serializer and have never had a dependency
1018- to JSON.NET.
1019-
1020- As supply chain attacks from external OSS libraries have become more common, it's even more important to avoid
1021- taking dependencies on external libraries where possible.
1022-
1023- As we now have multiple packages that referenced
1024- [ Hangfire's Cronos] ( https://github.com/HangfireIO/Cronos ) library we've decided to intern it in ServiceStack,
1025- removing the previous dependency ** ServiceStack.Jobs** had to Cronos. The only issue was that
1026- [ CronParser.cs] ( https://github.com/HangfireIO/Cronos/blob/main/src/Cronos/CronParser.cs ) uses unsafe parsing and we
1027- don't allow ` <AllowUnsafeBlocks> ` in any ServiceStack package, so it was rewritten to use Spans in our interned
1028- [ CronParser.cs] ( https://github.com/ServiceStack/ServiceStack/blob/main/ServiceStack/src/ServiceStack.Common/Cronos/CronParser.cs )
1029- implementation.
1030-
1031- It's released under the same MIT License as Cronos so anyone else is welcome to use it, as is our port of their
1032- [ CronExpressionTests.cs] ( https://github.com/ServiceStack/ServiceStack/blob/main/ServiceStack/tests/ServiceStack.Common.Tests/CronExpressionTests.cs )
1033- to NUnit.
1034-
10351013### Idempotent Registration
10361014
10371015Scheduled Tasks are idempotent where the same registration with the same name will
@@ -1055,7 +1033,29 @@ public class ConfigureBackgroundJobs : IHostingStartup
10551033}
10561034```
10571035
1058- ### Background Jobs Admin UI
1036+ ## Interned Cronos
1037+
1038+ A major source of friction in .NET Libraries and most Frameworks from all platforms in general is dependency conflicts.
1039+ E.g. Conflicting versions of JSON.NET have plagued many a .NET library and framework for several years, something that
1040+ never impacted ServiceStack Apps since we maintain our own fast/flexible JSON Serializer and have never had a dependency
1041+ to JSON.NET.
1042+
1043+ As supply chain attacks from external OSS libraries have become more common, it's even more important to avoid
1044+ taking dependencies on external libraries where possible.
1045+
1046+ As we now have multiple packages that referenced
1047+ [ Hangfire's Cronos] ( https://github.com/HangfireIO/Cronos ) library we've decided to intern it in ServiceStack,
1048+ removing the previous dependency ** ServiceStack.Jobs** had to Cronos. The only issue was that
1049+ [ CronParser.cs] ( https://github.com/HangfireIO/Cronos/blob/main/src/Cronos/CronParser.cs ) uses unsafe parsing and we
1050+ don't allow ` <AllowUnsafeBlocks> ` in any ServiceStack package, so it was rewritten to use Spans in our interned
1051+ [ CronParser.cs] ( https://github.com/ServiceStack/ServiceStack/blob/main/ServiceStack/src/ServiceStack.Common/Cronos/CronParser.cs )
1052+ implementation.
1053+
1054+ It's released under the same MIT License as Cronos so anyone else is welcome to use it, as is our port of their
1055+ [ CronExpressionTests.cs] ( https://github.com/ServiceStack/ServiceStack/blob/main/ServiceStack/tests/ServiceStack.Common.Tests/CronExpressionTests.cs )
1056+ to NUnit.
1057+
1058+ ## Background Jobs Admin UI
10591059
10601060The last job the Recurring Task ran is also viewable in the Jobs Admin UI:
10611061
0 commit comments