Altbilgi içeriğine atla
.NET YARDıM

Hangfire .NET Core (Geliştiriciler İçin Nasıl Çalışır)

Modern uygulama geliştirme, genellikle büyük iş yüklerini yönetmek için arka plan görevlerini işlemeyi gerektirir. Bu tür senaryolarda, birden fazla işi gerçekleştirebilecek arka plan iş yöneticilerine ihtiyaç duyarız. C# .NET Core uygulamaları için böyle bir arka plan iş yöneticisi Hangfire'dır. Bu blogda, Hangfire arka plan işlerini yönetmeyi ve IronPDF ile PDF Üretimi gibi diğer paketlerle arka planda PDF belgelerini oluşturmak için nasıl kullanacağınızı öğreneceğiz.

Hangfire, arka plan işlerini yönetmek ve yürütmek için güvenilir ve esnek bir çerçeve sağlayarak ASP.NET Core veya .NET Core 6 Web API uygulamalarında arka plan işlemlerinin uygulanmasını basitleştirir. Hangfire, bir NuGet paketi olarak mevcuttur ve aşağıda gösterildiği gibi .NET CLI kullanılarak kurulabilir:

dotnet add package Hangfire --version 1.8.6

.NET Core Web API'de Uygulama

Hangfire hakkında bilgi edinmek için basit bir .NET Core API uygulaması oluşturalım ve CLI kullanarak Hangfire yükleyelim.

dotnet new webapi -n HangfireDemo
cd HangfireDemo
dotnet build
dotnet add package Hangfire --version 1.8.6
dotnet build
dotnet new webapi -n HangfireDemo
cd HangfireDemo
dotnet build
dotnet add package Hangfire --version 1.8.6
dotnet build
SHELL

Burada .NET CLI kullanarak basit bir hava durumu REST API'si oluşturuyoruz. .NET Core Web API projesi, API uç noktalarını çalıştırmak için HangfireDemo adıyla oluşturulur. İkinci satır, yeni oluşturduğumuz "HangfireDemo" klasörüne gider ve ardından projeyi derleriz. Sonrasında, projemize Hangfire NuGet paketini ekleyip tekrar derleriz. Bundan sonra, projenizi Visual Studio 2022 veya JetBrains Rider gibi istediğiniz bir düzenleyici ile açabilirsiniz. Şimdi projeyi çalıştırırsanız Swagger'ı aşağıdaki gibi görebilirsiniz:

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 1 - Swagger

Burada tarih, özet ve sıcaklık döndüren hava durumu GET API'lerini görebiliriz.

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 2 - Hava Durumu GET API

Şimdi bir Hangfire arka plan iş işlemcisi ekleyelim. Projeyi Visual Studio'da açın.

Hangfire İş İşlemcisini Ekle

Hangfire uygulamanızda yapılandırın, genellikle Startup.cs dosyasında. Bu, iş depolama alanının ayarlanması ve Hangfire sunucusunun başlatılmasını içerir.

// Startup.cs
using Hangfire;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add Hangfire services and use SQL Server as storage option
        services.AddHangfire(config => config.UseSqlServerStorage("your_connection_string"));
        services.AddHangfireServer();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        // Use Hangfire Server and Dashboard for monitoring and managing jobs
        app.UseHangfireServer();
        app.UseHangfireDashboard();
        // Your other configuration settings
    }
}
// Startup.cs
using Hangfire;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add Hangfire services and use SQL Server as storage option
        services.AddHangfire(config => config.UseSqlServerStorage("your_connection_string"));
        services.AddHangfireServer();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        // Use Hangfire Server and Dashboard for monitoring and managing jobs
        app.UseHangfireServer();
        app.UseHangfireDashboard();
        // Your other configuration settings
    }
}
' Startup.cs
Imports Hangfire

Public Class Startup
	Public Sub ConfigureServices(ByVal services As IServiceCollection)
		' Add Hangfire services and use SQL Server as storage option
		services.AddHangfire(Function(config) config.UseSqlServerStorage("your_connection_string"))
		services.AddHangfireServer()
	End Sub

	Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IHostingEnvironment)
		' Use Hangfire Server and Dashboard for monitoring and managing jobs
		app.UseHangfireServer()
		app.UseHangfireDashboard()
		' Your other configuration settings
	End Sub
End Class
$vbLabelText   $csharpLabel

ConfigureServices yöntemi, Hangfire'ın yeni oluşturulan işlerini kaydetmek için depolama eklemek amacıyla kullanılır. Burada, bir SQL Server veritabanı kullanılır. SQL Server bağlantı dizesi, "your_connection_string" ile değiştirilmelidir. Hangfire.InMemory ile bellek içi depolama da kullanılabilir.

dotnet add package Hangfire.InMemory --version 0.6.0

Ve şu şekilde değiştirin:

services.AddHangfire(configuration => { configuration.UseInMemoryStorage(); });
services.AddHangfire(configuration => { configuration.UseInMemoryStorage(); });
services.AddHangfire(Sub(configuration)
	configuration.UseInMemoryStorage()
End Sub)
$vbLabelText   $csharpLabel

Arka Plan İşleri Oluştur

Arka plan işleri olarak çalıştırmak istediğiniz yöntemleri tanımlayın. Bu yöntemler, parametresiz bir yapıcıya sahip bir sınıfın statik veya örnek yöntemleri olmalıdır. İşler tekrarlayan işler olarak çalıştırılabilir veya birden fazla iş aynı anda çalıştırılabilir.

public class MyBackgroundJob
{
    public void ProcessJob()
    {
        // Background job logic, can be a recurring job or multiple jobs
        Console.WriteLine("Background job is running...");
    }
}
public class MyBackgroundJob
{
    public void ProcessJob()
    {
        // Background job logic, can be a recurring job or multiple jobs
        Console.WriteLine("Background job is running...");
    }
}
Public Class MyBackgroundJob
	Public Sub ProcessJob()
		' Background job logic, can be a recurring job or multiple jobs
		Console.WriteLine("Background job is running...")
	End Sub
End Class
$vbLabelText   $csharpLabel

İşleri Kuyruğa Al

Arka plan işleri, Hangfire API kullanılarak kuyruğa alınır. Arka plan işleri belirli bir zamanda, bir gecikmeden sonra veya düzenli olarak çalıştırılacak şekilde zamanlanabilir.

// Enqueue a job to run immediately
BackgroundJob.Enqueue<MyBackgroundJob>(x => x.ProcessJob());

// Schedule a job to run after a 5-minute delay
BackgroundJob.Schedule<MyBackgroundJob>(x => x.ProcessJob(), TimeSpan.FromMinutes(5));

// Schedule a recurring job using a job ID
RecurringJob.AddOrUpdate<MyBackgroundJob>("jobId", x => x.ProcessJob(), Cron.Daily);
// Enqueue a job to run immediately
BackgroundJob.Enqueue<MyBackgroundJob>(x => x.ProcessJob());

// Schedule a job to run after a 5-minute delay
BackgroundJob.Schedule<MyBackgroundJob>(x => x.ProcessJob(), TimeSpan.FromMinutes(5));

// Schedule a recurring job using a job ID
RecurringJob.AddOrUpdate<MyBackgroundJob>("jobId", x => x.ProcessJob(), Cron.Daily);
' Enqueue a job to run immediately
BackgroundJob.Enqueue(Of MyBackgroundJob)(Function(x) x.ProcessJob())

' Schedule a job to run after a 5-minute delay
BackgroundJob.Schedule(Of MyBackgroundJob)(Function(x) x.ProcessJob(), TimeSpan.FromMinutes(5))

' Schedule a recurring job using a job ID
RecurringJob.AddOrUpdate(Of MyBackgroundJob)("jobId", Function(x) x.ProcessJob(), Cron.Daily)
$vbLabelText   $csharpLabel

Hangfire Gösterge Panosu ve Sunucu

Hangfire kontrol paneli ve sunucu, gerçek zamanlı iş izleme için Configure yöntemine eklenebilir.

// Run Hangfire server and dashboard
app.UseHangfireServer();
app.UseHangfireDashboard();
// Run Hangfire server and dashboard
app.UseHangfireServer();
app.UseHangfireDashboard();
' Run Hangfire server and dashboard
app.UseHangfireServer()
app.UseHangfireDashboard()
$vbLabelText   $csharpLabel

Sunucu ayrıca ConfigureServices içine de eklenebilir.

services.AddHangfireServer();
services.AddHangfireServer();
services.AddHangfireServer()
$vbLabelText   $csharpLabel

Unut Gitsin İşleri

// Fire and forget jobs are executed only once and almost immediately after creation.
var jobId = BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget!")); // Job ID for fire and forget job
// Fire and forget jobs are executed only once and almost immediately after creation.
var jobId = BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget!")); // Job ID for fire and forget job
' Fire and forget jobs are executed only once and almost immediately after creation.
Dim jobId = BackgroundJob.Enqueue(Sub() Console.WriteLine("Fire-and-forget!")) ' Job ID for fire and forget job
$vbLabelText   $csharpLabel

Tekrarlayan İşler

// Recurring jobs fire many times based on a specified CRON schedule.
RecurringJob.AddOrUpdate("myrecurringjob", () => Console.WriteLine("Recurring!"), Cron.Daily);
// Recurring jobs fire many times based on a specified CRON schedule.
RecurringJob.AddOrUpdate("myrecurringjob", () => Console.WriteLine("Recurring!"), Cron.Daily);
' Recurring jobs fire many times based on a specified CRON schedule.
RecurringJob.AddOrUpdate("myrecurringjob", Sub() Console.WriteLine("Recurring!"), Cron.Daily)
$vbLabelText   $csharpLabel

Gecikmiş İşler

// Delayed jobs are executed only once but after a specified interval.
var jobId = BackgroundJob.Schedule(() => Console.WriteLine("Delayed!"), TimeSpan.FromDays(7));
// Delayed jobs are executed only once but after a specified interval.
var jobId = BackgroundJob.Schedule(() => Console.WriteLine("Delayed!"), TimeSpan.FromDays(7));
' Delayed jobs are executed only once but after a specified interval.
Dim jobId = BackgroundJob.Schedule(Sub() Console.WriteLine("Delayed!"), TimeSpan.FromDays(7))
$vbLabelText   $csharpLabel

Devamlılıklar

// Continuation jobs are executed once their parent jobs have completed.
BackgroundJob.ContinueJobWith(jobId, () => Console.WriteLine("Continuation!"));
// Continuation jobs are executed once their parent jobs have completed.
BackgroundJob.ContinueJobWith(jobId, () => Console.WriteLine("Continuation!"));
' Continuation jobs are executed once their parent jobs have completed.
BackgroundJob.ContinueJobWith(jobId, Sub() Console.WriteLine("Continuation!"))
$vbLabelText   $csharpLabel

Toplu İş

// Batch is a group of background jobs created atomically and considered as a single entity.
var batchId = BatchJob.StartNew(x =>
{
    x.Enqueue(() => Console.WriteLine("Job 1"));
    x.Enqueue(() => Console.WriteLine("Job 2"));
});
// Batch is a group of background jobs created atomically and considered as a single entity.
var batchId = BatchJob.StartNew(x =>
{
    x.Enqueue(() => Console.WriteLine("Job 1"));
    x.Enqueue(() => Console.WriteLine("Job 2"));
});
' Batch is a group of background jobs created atomically and considered as a single entity.
Dim batchId = BatchJob.StartNew(Sub(x)
	x.Enqueue(Sub() Console.WriteLine("Job 1"))
	x.Enqueue(Sub() Console.WriteLine("Job 2"))
End Sub)
$vbLabelText   $csharpLabel

Toplu Devam İşleri

// Batch continuation is fired when all background jobs in a parent batch are finished.
BatchJob.ContinueBatchWith(batchId, x =>
{
    x.Enqueue(() => Console.WriteLine("Last Job"));
});
// Batch continuation is fired when all background jobs in a parent batch are finished.
BatchJob.ContinueBatchWith(batchId, x =>
{
    x.Enqueue(() => Console.WriteLine("Last Job"));
});
' Batch continuation is fired when all background jobs in a parent batch are finished.
BatchJob.ContinueBatchWith(batchId, Sub(x)
	x.Enqueue(Sub() Console.WriteLine("Last Job"))
End Sub)
$vbLabelText   $csharpLabel

Kontrol Paneli

Hangfire Dashboard, arka plan işlerinizle ilgili tüm bilgileri bulabileceğiniz yerdir. OWIN orta katmanı olarak yazılmıştır (OWIN hakkında bilginiz yoksa endişelenmeyin), böylece ASP.NET, ASP.NET MVC, Nancy ve ServiceStack uygulamalarınıza ekleyebilir, ayrıca OWIN Self-Host özelliğini kullanarak Kontrol Paneli'ni Konsol Uygulamaları veya Windows Hizmetleri içinde barındırabilirsiniz.

Kontrol paneli etkinleştirildiğinde, /hangfire/ uzantısında kullanılabilir. Bu panelde, arka planda çalışan işleri yönetebilir, arka plan işlerini zamanlayabilir ve unut gitsin işleri tekrarlayan işlerle birlikte görüntüleyebilirsiniz. İşler bir iş kimliği kullanılarak belirlenebilir.

Canlı İşleme

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 3 - İşlerin Canlı İşlenmesi

Başarılı İşler

Başarılı işleri aşağıda görüntüleyin.

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 4 - Başarılı İşler

Zamanlanmış İşler

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 5 - Planlanmış İşler

Uygulamanız çalıştığında, Hangfire, yapılandırılmış ayarlara göre arka plan işlerini işleyecektir.

Daha gelişmiş yapılandırma seçenekleri ve özellikler için Hangfire belgelerini kontrol etmeyi unutmayın: Hangfire Dokümantasyon ve tamamı GitHub Hangfire Demo'da bulunabilir.

IronPDF Tanıtımı

IronPDF .NET için PDF Generation, Iron Software's PDF Kütüphanesi tarafından sağlanan bir NuGet paketidir ve PDF belgelerini okumaya ve oluşturmaya yardımcı olur. Stil bilgilerini içeren kolayca biçimlendirilmiş belgeleri PDF'ye dönüştürebilir. IronPDF, HTML içeriğinden kolayca PDF oluşturabilir. URL'den HTML'i indirip ardından PDF'ler oluşturabilir.

IronPDF'nin ana çekiciliği, düzenleri ve stilleri koruyan HTML'den PDF'ye Dönüştürme işlevselliğidir. Web içeriğinden PDF oluşturabilir, raporlar, faturalar ve dokümantasyon için idealdir. Bu özellik, HTML dosyalarını, URL'leri ve HTML dizilerini PDF'lere dönüştürmeyi destekler.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF ile başlama

IronPDF Kütüphanesini Yükleyin

NuGet Paket Yöneticisi Kullanarak Kurulum

NuGet Paket Yöneticisi'ni kullanarak IronPDF'i Hangfire .NET projenize eklemek için şu adımları izleyin:

  1. Visual Studio'yu açın ve Çözüm Gezgini'nde projenize sağ tıklayın.
  2. Bağlam menüsünden "NuGet Paketlerini Yönet..." seçeneğini seçin.
  3. Gözat sekmesine gidin ve IronPDF'i arayın.
  4. Arama sonuçlarından IronPDF kütüphanesini seçin ve Yükle butonuna tıklayın.
  5. Herhangi bir lisans anlaşması istemini kabul edin.

Paket Yöneticisi Konsolu'nu kullanmayı tercih ediyorsanız, aşağıdaki komutu çalıştırın:

Install-Package IronPdf

Bu, projenize IronPDF'i alır ve yükler.

NuGet Web Sitesini Kullanarak Kurulum

IronPDF'nin özellikleri, uyumluluğu ve ek indirme seçenekleri de dahil olmak üzere detaylı bir genel bakış için https://www.nuget.org/packages/IronPdf adresindeki IronPDF sayfasını ziyaret edin.

DLL Kullanarak Kurulum

Alternatif olarak, IronPDF'yi DLL dosyasını kullanarak doğrudan projenize dahil edebilirsiniz. DLL içeren ZIP dosyasını bu IronPDF Doğrudan İndirme bağlantısından indirin. Açın ve DLL'i projenize dahil edin.

Şimdi bir web sitesini PDF dosyası olarak indirmek için bir arka plan işleme işi eklemek üzere uygulamamızı değiştirelim.

namespace HangfireDemo.Core;

public class PdfGenerationJob
{
    public void Start(string website)
    {
        // Create a PDF from any existing web page
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderUrlAsPdf(website);
        var filePath = AppContext.BaseDirectory + "result.pdf";
        pdf.SaveAs(filePath);
    }
}
namespace HangfireDemo.Core;

public class PdfGenerationJob
{
    public void Start(string website)
    {
        // Create a PDF from any existing web page
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderUrlAsPdf(website);
        var filePath = AppContext.BaseDirectory + "result.pdf";
        pdf.SaveAs(filePath);
    }
}
Namespace HangfireDemo.Core

	Public Class PdfGenerationJob
		Public Sub Start(ByVal website As String)
			' Create a PDF from any existing web page
			Dim renderer As New ChromePdfRenderer()
			Dim pdf As PdfDocument = renderer.RenderUrlAsPdf(website)
			Dim filePath = AppContext.BaseDirectory & "result.pdf"
			pdf.SaveAs(filePath)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDF, bir URL'den bir web sitesini indirip PDF belgesi olarak kaydetmek için dahili bir metoda sahiptir. Bu metodu, bir işi indirip belirtilen bir konuma kaydetmek için kullanacağız. Bu arka plan işi, birden fazla web sitesi URL'si alacak ve bunları PDF olarak kaydedecek şekilde değiştirilebilir.

Şimdi PDF oluşturma ve indirme API'lerini açığa çıkaran bir denetleyici ekleyelim.

using Hangfire;
using HangfireDemo.Core;
using Microsoft.AspNetCore.Mvc;

namespace HangfireDemo.Controllers;

[ApiController]
[Route("[controller]")]
public class PdfGeneratorController : ControllerBase
{
    [HttpGet("request", Name = "Start PDF Generation")]
    public void Start([FromQuery] string websiteUrl)
    {
        BackgroundJob.Enqueue<PdfGenerationJob>(x => x.Start(websiteUrl));
    }

    [HttpGet("result", Name = "Download PDF Generation")]
    public IActionResult WebResult()
    {
        var filePath = AppContext.BaseDirectory + "result.pdf";
        var stream = new FileStream(filePath, FileMode.Open);
        return new FileStreamResult(stream, "application/octet-stream") { FileDownloadName = "website.pdf" };
    }
}
using Hangfire;
using HangfireDemo.Core;
using Microsoft.AspNetCore.Mvc;

namespace HangfireDemo.Controllers;

[ApiController]
[Route("[controller]")]
public class PdfGeneratorController : ControllerBase
{
    [HttpGet("request", Name = "Start PDF Generation")]
    public void Start([FromQuery] string websiteUrl)
    {
        BackgroundJob.Enqueue<PdfGenerationJob>(x => x.Start(websiteUrl));
    }

    [HttpGet("result", Name = "Download PDF Generation")]
    public IActionResult WebResult()
    {
        var filePath = AppContext.BaseDirectory + "result.pdf";
        var stream = new FileStream(filePath, FileMode.Open);
        return new FileStreamResult(stream, "application/octet-stream") { FileDownloadName = "website.pdf" };
    }
}
Imports Hangfire
Imports HangfireDemo.Core
Imports Microsoft.AspNetCore.Mvc

Namespace HangfireDemo.Controllers

	<ApiController>
	<Route("[controller]")>
	Public Class PdfGeneratorController
		Inherits ControllerBase

		<HttpGet("request", Name := "Start PDF Generation")>
		Public Sub Start(<FromQuery> ByVal websiteUrl As String)
			BackgroundJob.Enqueue(Of PdfGenerationJob)(Function(x) x.Start(websiteUrl))
		End Sub

		<HttpGet("result", Name := "Download PDF Generation")>
		Public Function WebResult() As IActionResult
			Dim filePath = AppContext.BaseDirectory & "result.pdf"
			Dim stream = New FileStream(filePath, FileMode.Open)
			Return New FileStreamResult(stream, "application/octet-stream") With {.FileDownloadName = "website.pdf"}
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Burada, indirmeyi başlatmak için web sitesi URL'sini alan arka plan işini başlatmak için bir API ve ortaya çıkan PDF'yi indirmek için başka bir API oluşturduk. API'ler aşağıda gösterildiği şekilde tasvir edilmiştir.

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 7 - PDFGenerator API'leri

Ve sonuç şöyle görünüyor:

Hangfire .NET Core (Geliştirici İçin Nasıl Çalışır): Şekil 8 - Çıktı

Lisanslama (Ücretsiz Deneme Mevcuttur)

Yukarıdaki kodun su işareti olmadan çalışabilmesi için bir lisans anahtarına ihtiyaç vardır. Geliştiriciler, IronPDF Ücretsiz Deneme ile kaydolarak bir deneme lisansı alabilirler. Deneme lisansı için kredi kartı gerekmez. E-posta kimliğinizi sağlayarak ücretsiz deneme için kaydolabilirsiniz.

Sonuç

Hangfire ve IronPDF birlikte, arka planda PDF oluşturma ve indirme için harika bir kombinasyondur. Hangfire, uzun süren görevlerin verimli bir şekilde işlenmesini sağlar, IronPDF, PDF oluşturma için esnek ve kullanımı kolay bir çözüm sunar. IronPDF hakkında daha fazla bilgi için IronPDF Dokümantasyonu'nu ziyaret edebilirsiniz.

Ayrıca, kodlama becerilerinizi geliştirebilecek ve modern uygulama gereksinimlerini karşılayabilecek Iron Software Ürün Paketi içerisindeki diğer araçları keşfedin.

Sıkça Sorulan Sorular

Hangfire, .NET Core'da ne anlama gelir?

Hangfire, ASP.NET Core veya .NET Core 6 uygulamalarında arka plan işlemlerinin uygulanmasını basitleştiren bir çerçevedir. Arka plan işleri yönetimi ve yürütmesi için güvenilir ve esnek bir çözüm sunar.

Bir .NET Core uygulamasına Hangfire nasıl kurabilirim?

Hangfire, bir NuGet paketi olarak kurulabilir. .NET CLI ile şu komutu kullanarak ekleyebilirsiniz: dotnet add package Hangfire --version 1.8.6.

Hangfire'ın desteklediği arka plan iş türleri nelerdir?

Hangfire, Ateşle ve Unut işleri, Gecikmeli işler, Tekrarlanan işler ve Devam işlerini içeren çeşitli arka plan işleri türlerini destekler.

Bir .NET Core uygulamasında Hangfire nasıl yapılandırılır?

Hangfire, iş depolama ve Hangfire sunucusunu başlatacağınız Startup.cs dosyasında yapılandırılır. Genellikle Hangfire hizmetlerini eklemeyi ve bir SQL Server veya bellek içi depolama ayarlamayı içerir.

Hangfire Dashboard nedir?

Hangfire Dashboard, arka plan işleri izleme ve yönetme aracıdır. Canlı işlem, başarılı işler ve planlanmış işler hakkında bilgi sağlar ve web arayüzü üzerinden erişilebilir.

Hangfire kullanarak bir arka plan işi nasıl oluşturursunuz?

Hangfire kullanarak arka plan işleri, çalıştırmak istediğiniz yöntemleri iş olarak tanımlayarak ve ardından Hangfire API ile sıralandırarak oluşturulabilir. İşler hemen çalıştırılmak, bir gecikmeye uğramak veya tekrarlanan şekilde programlanabilir.

PDF oluşturma görevlerini .NET Core ile arka planda nasıl gerçekleştirebiliriz?

Bir PDF kütüphanesi kullanarak HTML'den PDF'ye dönüşüm sağlayan PDF oluşturma görevlerini arka planda gerçekleştirebilirsiniz. Bu, HTML içeriğinden PDF oluşturmayı otomatikleştirmek için Hangfire gibi bir arka plan işleme çerçevesine entegre edilebilir.

Bir PDF oluşturma kütüphanesinin .NET'teki bazı yetenekleri nelerdir?

Bir PDF oluşturma kütüphanesi, HTML dizgelerini, HTML dosyalarını ve URL'leri PDF'lere dönüştürebilir. Düzenleri ve stilleri korur ve web içeriğinden raporlar, faturalar ve belgeler oluşturmak için yararlıdır.

Bir .NET projesine PDF oluşturma kütüphanesi nasıl kurulur?

PDF oluşturma kütüphanesi, Visual Studio'daki NuGet Paket Yöneticisi veya Paket Yöneticisi Konsolu ile belirli bir komutla kurulabilir. Ayrıca kütüphanenin web sitesinden DLL'i doğrudan indirerek de kurabilirsiniz.

PDF oluşturma kütüphanesini filigransız kullanmak için ne gereklidir?

PDF oluşturma kütüphanesini filigransız kullanmak için genellikle bir lisans anahtarı gereklidir. Kütüphanenin web sitesinde kaydolduktan sonra bir ücretsiz deneme lisansı bulunabilir.

Bir PDF oluşturma aracını Hangfire ile .NET Core'da nasıl entegre edebilirsiniz?

Bir PDF oluşturma aracını .NET Core'da Hangfire ile entegre edebilirsiniz, HTML'yi PDF'ye dönüştüren PDF oluşturma kütüphanesini kullanan bir arka plan işi kurarak. Bu, uygulamalarda otomatik belge oluşturma ve yönetim sağlamak için kullanılır.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara