项目作者: bopazyn

项目描述 :
Startup task library for Asp Net
高级语言: C#
项目地址: git://github.com/bopazyn/Pazyn.StartupTasks.git
创建时间: 2020-09-09T16:40:40Z
项目社区:https://github.com/bopazyn/Pazyn.StartupTasks

开源协议:

下载


Pazyn.StartupTasks

Pazyn.StartupTasks is library for running tasks when application is starting. For example, you can migrate your database, validate configuration, synchronize permission or populate cache.
Startup tasks can be configured separately to work in two modes: blocking and nonblocking. Blocking means that all request are blocked until the tasks have completed. Second mode guards routes that are marked with medod RequireStartupTask producing 503 HTTP response code until tasks have completed.

Minimal working example

  1. public class SillyStartupTask : IStartupTask
  2. {
  3. public Task<Boolean> Run(CancellationToken cancellationToken) => Task.FromResult(true);
  4. }
  5. public class Startup
  6. {
  7. public void ConfigureServices(IServiceCollection services)
  8. {
  9. services.AddHealthChecks()
  10. .AddStartupTasks();
  11. services.AddStartupTasks()
  12. .AddStartupTask<SillyStartupTask>();
  13. }
  14. public void Configure(IApplicationBuilder app, IConfiguration configuration)
  15. {
  16. app.UseRouting();
  17. app.UseStartupTasks();
  18. app.UseEndpoints(endpoints =>
  19. {
  20. endpoints.MapHealthChecks("/health");
  21. endpoints.MapGet("/", context => context.Response.WriteAsync("Hello World!"))
  22. .RequireStartupTask();
  23. });
  24. }
  25. }

Acknowledgements

The work was inspired by:

Look at his blog posts:

  1. https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-1/
  2. https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-2/
  3. https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-3-feedback/
  4. https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-4-using-health-checks/
  5. https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-3/