The easiest way to schedule and scale background jobs from your web appBuild, scale, and deploy on your hardware or in the cloud with Runly's all-in-one platform for modern background jobs.

Runly is a platform for running background jobs. It enables you to build and deploy background jobs with ease. Runly is perfect for long-running tasks, resource-intensive work, batch data imports/exports, and more.

Comparison to IHostedService

runly vs hosted service

.NET’s IHostedService model was introduced in ASP.NET Core 2.1. The hosted service model allows you to register background tasks that run while your web host is running. These are coordinated with the lifetime of the application. You register a Task when the application starts and have the opportunity to do some graceful clean-up when the application is shutting down. While you could spin off work on a background thread previously, it would be killed when the main application process shutdown and not given an opportunity to gracefully stop.

While IHostedService is a welcome introduction to the ASP.NET platform, it suffers from some drawbacks. The main drawback of running your background jobs in-process revolves around the life of your job being tied to the life of your application. If your application crashes or is force-closed, all of your background jobs will die with it. Even if your job is given an opportunity to gracefully stop, it has to stop. The application is shutting down and stopping all background services with it whether your job is done or not.

If you need a guarantee that your background job will finish, you need to run your background jobs outside the context of your main application. Runly background jobs are run on worker nodes that can be run on your servers or in the cloud. Runly manages your environments and nodes, putting you in control of where code runs.

Deployment

While deploying a separate background application from your main application has traditionally been fraught with headaches, Runly makes it simple and easy to integrate job deployment with your current workflow.

To deploy a Runly job, all you need to do is pack and publish the application as a nupkg and push it to your Runly organization’s nuget feed. Once the package is pushed to your organization on Runly, it can be run on any node in your infrastructure. Learn more about Runly’s deployment model.

Utilizing Runly, you can have the benefits of out-of-process background jobs without the headaches of deployment.