• Stars
    star
    321
  • Rank 130,752 (Top 3 %)
  • Language
    C#
  • License
    Apache License 2.0
  • Created about 13 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Proof of concept of a web based background task manager that deals well with web farms/app shutdowns

Intro

WebBackgrounder is a proof-of-concept of a web-farm friendly background task manager meant to just work with a vanilla ASP.NET web application.

Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Problem Statement

Code that runs within ASP.NET does not own the App Domain. IIS and ASP.NET are free to shut down the app domain at any moment.

Typically, when that happens, ASP.NET flushes the requests giving them time to finish what they're doing before tearing down the App Domain.

But if you're doing work on background thread that ASP.NET doesn't know about, it could end up tearing down the app domain in the middle of the work, leaving your data in a potentially invalid state.

There are ways to notify ASP.NET that work is in progress. WebBackgrounder demonstrates the use of such facilities.

Likewise, if you have multiple web servers in a farm, you'd like some small amount of coordination between them without them having to explicitly know about each other so they don't duplicate each other's work.

Why not use Azure Queues or a Scheduled Task?

For an enterprise solution, using an Azure Queue, a Windows Service, or a system level scheduled task are much better solutions. The goal of this project would be to allow those to easily hook in and provide this functionality.

But for a small project, or for development environments, you still want these tasks to run without requiring a bunch of setup or a connection to Azure.

What this is not

This is not a general purpose scheduling framework. There are much better ones out there such as hangfire.io, FluentScheduler and Quartz.net. The goal of this project is to handle one task only, manage a recurring task on an interval in the background for a web app.

The needs I have are very simple. I didn't need a high fidelity scheduler. Maybe later, I'll look to integrate what I've done with one of the others. But for now, this scratches an itch.

More Repositories

1

NuGetGallery

NuGet Gallery is a package repository that powers https://www.nuget.org. Use this repo for reporting NuGet.org issues.
C#
1,501
star
2

Home

Repo for NuGet Client issues
HTML
1,476
star
3

NuGet.Client

Client Tools for NuGet - including Visual Studio extensions, command line tools, and msbuild support. (Open issues on https://github.com/nuget/home/issues)
C#
705
star
4

NuGet.Server

NuGet Server is a lightweight standalone NuGet server
C#
550
star
5

NuGetDocs

Former Documentation site for NuGet - now replaced by NuGet/docs.microsoft.com-nuget
C#
159
star
6

docs.microsoft.com-nuget

Documentation for NuGet
PowerShell
147
star
7

Samples

NuGet team sample repo
C#
131
star
8

NuGet2

This is the home of nuget.core and all the repos from codeplex.
C#
92
star
9

Announcements

Subscribe to this repo to be notified of upcoming proposals and other important changes to NuGet
82
star
10

PoliteCaptcha

PoliteCaptcha is a spam prevention library for use with ASP.NET MVC that attempts polite spam prevention first, before rudely presenting the user with a CAPTCHA.
C#
73
star
11

NuGet.Build.Packaging

The NuGetizer-3000 is here!
C#
70
star
12

setup-nuget

TypeScript
69
star
13

NuGet.Jobs

C#
49
star
14

Insights

Gather insights about public NuGet.org package data
C#
24
star
15

NuGet.Services.Metadata

NuGet's Metadata Service
24
star
16

ServerCommon

Common libraries used across the server repos
C#
20
star
17

Entropy

A place for random samples, prototypes and ideas. None of the stuff here is supported or production grade.
C#
20
star
18

NuGet.Services.Dashboard

NuGet Services Monitoring Dashboard
JavaScript
11
star
19

docs.microsoft.com-nuget.zh-cn

Documentation repo for NuGet localized for zh-cn language-culture
PowerShell
9
star
20

Media

Media files for use in your NuGet integration projects
HTML
7
star
21

PackageSourceMapper

A home of the PackageSourceMapper tool that helps onboard users to PackageSourceMapping
PowerShell
7
star
22

NuGet.Services.EndToEnd

C#
6
star
23

NuGet.Operations

Operations console for executing jobs for NuGet Services
C#
6
star
24

NuGet.Services.Work

Worker that executes queued jobs for the various NuGet Services
C#
5
star
25

NuGet.Schema

5
star
26

NuGet.Licenses

A host for SPDX license text. Also allows parsing of SPDX license expressions.
C#
5
star
27

NuGet.Warehouse

A data warehouse for NuGet Gallery package downloads
PLpgSQL
4
star
28

NuGet.PackageIndex

This repo contains NuGet's implementation of the VS2015 'Add Missing NuGet packages' feature.
C#
4
star
29

NuGet.Build.Localization

Holds localization artifacts for NuGet client dlls.
Rich Text Format
4
star
30

NuGet.Services.Platform

Shared/common code for the NuGet Services
C#
3
star
31

docs.microsoft.com-nuget.ja-jp

Documentation repo for NuGet localized for ja-jp language-culture
PowerShell
3
star
32

docs.microsoft.com-nuget.ko-kr

Documentation repo for NuGet localized for ko-kr language-culture
PowerShell
3
star
33

OpsDashboard

NuGet Gallery Operations Dashboard
C#
2
star
34

NuGet.Services.Messaging

NuGet's email processing service
PowerShell
2
star
35

NuGet.Staging

A repository for the NuGet staging feature
2
star
36

docs.microsoft.com-nuget.es-es

Documentation repo for NuGet localized for es-es language-culture
PowerShell
2
star
37

NuGet.Services.Metrics

C#
2
star
38

NuGet.Services.Gateway

Gateway application for NuGet API Services
C#
2
star
39

NuGet.Services.Status

NuGet's status page
C#
1
star
40

docs.microsoft.com-nuget.de-de

Documentation repo for NuGet localized for de-de language-culture
PowerShell
1
star
41

docs.microsoft.com-nuget.pl-pl

Documentation repo for NuGet localized for pl-pl language-culture
PowerShell
1
star
42

docs.microsoft.com-nuget.handback

Handback repo for docs localization efforts
1
star
43

docs.microsoft.com-nuget.handoff

Handoff repo for docs localization efforts
1
star
44

.github

1
star
45

docs.microsoft.com-nuget.ru-ru

Documentation repo for NuGet localized for ru-ru language-culture
PowerShell
1
star
46

Spotlight

A repository to spotlight popular and upcoming NuGet packages
1
star