https://github.com/hirre/dynamicwebworker
A dynamic web worker service based on the plugin architecture pattern.
https://github.com/hirre/dynamicwebworker
asp-net-core dotnet dotnet-core dotnetcore dynamic plugin rabbitmq rest-api webservice webworker worker
Last synced: 5 months ago
JSON representation
A dynamic web worker service based on the plugin architecture pattern.
- Host: GitHub
- URL: https://github.com/hirre/dynamicwebworker
- Owner: hirre
- License: mit
- Created: 2024-07-12T06:22:09.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-05T12:09:41.000Z (almost 2 years ago)
- Last Synced: 2025-04-09T16:58:36.458Z (about 1 year ago)
- Topics: asp-net-core, dotnet, dotnet-core, dotnetcore, dynamic, plugin, rabbitmq, rest-api, webservice, webworker, worker
- Language: C#
- Homepage:
- Size: 107 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dynamic Web Worker
A worker service that can dynamically be loaded with a number of worker threads using REST calls. The workers can (based on incoming messages) process some work which are located in separate libraries that are also loaded dynamically.
## RabbitMQ Installation & Running with Docker
```
docker pull rabbitmq:3-management
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
```
## Code Structure
- **WebWorker** is the main worker service
- Dynamically loaded work libraries are put as subfolders in /Work/* (they can be built with the publish command)
- **WebWorkerInterfaces** is library with shared interfaces and models
- **TestMessageProducer** is a test library to produce RabbitMQ messages
- **TestWork** is a test library which implements an interface that the WebWorker dynamically loads and runs
- Should be built with publish command and put as a subfolder in the /Work folder
## Architecture
### Overview

### Type of queue used for permanent workers

### Other
- Can execute custom work code without using the dynamic loading feature: https://github.com/hirre/dynamicwebworker/issues/8#issuecomment-2256109699