gayankanishka / CleanArchitecture.WorkerService

A solution template using Clean Architecture for building a .NET Core Worker Service.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CleanArchitecture.WorkerService

A solution template using Clean Architecture for building a .NET 6.0 Worker Service.

Give a Star! ⭐

If you like or are using this project to learn or start your solution, please give it a star. Thanks!

Credits

Big thanks to all of the great contributors to this project!

Getting Started

Install the ef core cli tools dotnet tool install --global dotnet-ef. If you already have an old version, first try dotnet tool update --global dotnet-ef --version 6.0.0-*, if that doesn't work, see Updating Ef Core Cli First, delete C:\Users{yourUser}.dotnet\tools.store\dotnet-ef tool.

This app is currently configured to run against a localdb SQL Server instance. To configure this, you will need to run dotnet ef database update in the src\CleanArchitecture.Worker folder before running the app.

Check the connection string in appsettings.json in the CleanArchitecture.Worker project

Clone or download the repository. Open it in Visual Studio and run it with ctrl-F5 or in the console go to the src/CleanArchitecture.Worker folder and run dotnet run.

On startup the app queues up 10 URLs to hit (google.com) and you should see it make 10 requests and save them to the database and then do nothing, logging each second.

Using this for your own worker service

To use this as a template for your own worker server projects, make the following changes:

  • Rename CleanArchitecture to YourAppName or YourCompany.YourAppName
  • Configure the connection string to your database if you're using one
  • Replace InMemory queue implementations with Azure, AWS, Rabbit, etc. actual queues you're using
  • Remove UrlStatusHistory and related services and interfaces

References

Useful Pluralsight courses:

About

A solution template using Clean Architecture for building a .NET Core Worker Service.

License:MIT License


Languages

Language:C# 97.4%Language:Dockerfile 2.6%