Bazı işlemleri periyodik olarak, örneğin günlük olarak veya her üç saatte bir çalıştırmak isteyebilirsiniz.
Zamanlanmış Görevler veya Windows Hizmetlerini kullanabiliyor olsanız bile, uygulamanızı yüklediğiniz her sunucuda manuel yapılandırma gerektirir ve bunların yönetilmesinin zor olması, kod çoğaltılması vb. gibi kendi sorunları vardır.
StartSharp, web uygulamalarınız için bir arka plan görev sistemi içerir.
HangFire ( https://www.hangfire.io/ ) gibi diğer seçenekler kadar özelliklerle dolu olmasa da , çok fazla şey öğrenmek zorunda kalmadan işi halleder.
namespace StartSharp.Common.Services
{
using Entities;
using Serenity;
using Serenity.Data;
using System;
public class MailingBackgroundTask : PeriodicBackgroundTask
{
protected override TimeSpan GetInterval()
{
var config = Config.Get<MailingServiceSettings>();
return TimeSpan.FromSeconds(config.Interval);
}
protected override void InternalRun()
{
var env = Config.Get<EnvironmentSettings>();
var config = Config.Get<MailingServiceSettings>();
if (!config.Enabled)
return;
using (var connection = SqlConnections.NewFor<MailRow>())
{
var m = MailRow.Fields;
var mailList = connection.List<MailRow>(q => q
.Take(config.BatchSize)
.Select(m.MailId)
//...
Bir sonraki özelliğimiz olan Toplu Posta Kuyruğu'nu bu görev sistemine uyguladık.