A standalone .Net component for managing long-running background tasks in any application.
Switch branches/tags
Clone or download
tusmester Netstandard/framework461 (#7)
* Upgrade to .net framework 4.6.1 and newtonsoft.json 11
* Convert the taskmanagement.core project to netstandard.
* Raise version to 1.2.
Latest commit 6d8a9cc Jul 10, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Netstandard/framework461 (#7) Jul 10, 2018
.gitignore Initial commit Nov 8, 2016
CONTRIBUTING.md Fix link in contribution guide. Nov 12, 2016
LICENSE Initial commit Nov 8, 2016
README.md Update product name in readme.md (#5) Jun 29, 2017

README.md

sensenet ECM Task Management

Join the chat at https://gitter.im/SenseNet/sn-taskmanagement NuGet

Task Management is a .Net component for managing long-running background tasks in any application. It is a robust and scalable solution that is extendable with 3rd party task executors designed for solving atomic background tasks (e.g. extracting a compressed file or generating preview images for a document).

  • Takes off the load from web servers (because they are for serving client requests, not for performing resource-heavy tasks).
  • Prevents the web process from crushing in case of 3rd party plugins (e.g. an out of memory issue with a text extractor tool should not kill the web process).
  • Fully scalable, as you can deploy any number of agent machines to be able to perform more tasks at the samwe time.
  • It is able to provide rich progress information about running tasks.

This project was developed as a supporting component for sensenet ECM, but can be used in conjunction with any application!

Overview

Task Management consists of the following subcomponents:

  1. Task Management web application: this is the central hub for registering tasks and performing callbacks when the execution is finished. When a task arrives, the web app notifies the agents (via SignalR) and lets one of them (the winner) take the new task.
  2. Agent: this is the process that will start the appropriate task executor plugin for a certain task.
  3. Executor: this is the command line tool that actually performs the task - e.g. checks a document for viruses. This is the main extensibility point: you can create a custom executor, deploy it into the appropriate folder and you can start registering your tasks right away.
  4. Service: a Windows service that keeps the configured number of agents (3 by default) alive. You can deploy any number of agent machines with this service, agent and executors installed.

Task Management architecture

Task Management does not contain any built-in task executors. It is only the framework that provides the environment for your custom task executors.

For details and extensibility points please visit the following articles.