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. Böylesi senaryolarda, birden fazla görevi yürütebilen arka plan işleyici sistemlere ihtiyaç duyarız. C# .NET Core uygulamaları için böyle bir arka plan işleyici Hangfire'dır. Bu makalede, Hangfire arka plan işlerini yönetmeyi ve bunları, IronPDF for PDF Generation gibi paketlerle kullanarak arka planda PDF belgeleri üretmeyi öğreneceğiz.

Hangfire, arka plan işleme işlemlerinin yürütülmesini ASP.NET Core veya .NET Core 6 Web API uygulamalarında yönetmek için güvenilir ve esnek bir çerçeve sağlayarak 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 Hangfire'i CLI kullanarak 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. İlk satır, API uç noktalarını çalıştırmak için HangfireDemo adlı bir .NET Core Web API projesi oluşturur. İkinci satır, yeni oluşturduğumuz 'HangfireDemo' klasörüne gider ve ardından projeyi derleriz. Sonrasında, projemize Hangfire NuGet paketini ekler ve tekrar derleriz. Bu işlemden sonra, projenizi Visual Studio 2022 veya JetBrains Rider gibi tercih ettiğiniz herhangi bir editörde 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ığı 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şleyici ekleyelim. Projeyi Visual Studio'da açın.

Hangfire İş İşleyici Ekleme

Hangfire'i uygulamanızda genellikle Startup.cs dosyasında yapılandırın. Bu, iş depolama alanı ayarlamayı ve Hangfire sunucusunu başlatmayı 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 metodu, Hangfire'in yeni oluşturulan işlerini kaydetmek için depolama alanı eklemek için kullanılır. Burada bir SQL Server veritabanı kullanılıyor. SQL Server bağlantı dizisi "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 bununla 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şturma

Arka plan işleri olarak çalıştırmak istediğiniz yöntemleri tanımlayın. Bu yöntemler, bir parametresiz 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 aynı anda birden fazla iş çalıştırabilirsiniz.

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

İş Kuyruğuna Alma

Hangfire API'sini kullanarak arka plan işlerini kuyruğa alın. Arka plan işlerini belirli bir saatte, gecikmeden sonra veya düzenli olarak çalıştıracak şekilde zamanlayabilirsiniz.

// 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 Kontrol Paneli ve Sunucu

Hangfire panosu ve sunucu gerçek zamanlı iş izleme için Configure metoduna 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

Ateşle ve Unut İşler

// 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

Gecikmeli İş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

Devamlar

// 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 İş

// 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 Kontrol Paneli, arka plan işleriniz hakkında tüm bilgilerin bulunduğu yerdir. Bir OWIN ara yazılımı olarak yazıldığından (OWIN ile tanışık değilseniz endişelenmeyin), ASP.NET, ASP.NET MVC, Nancy ve ServiceStack uygulamalarınıza dahil edebilir veya OWIN Kendi Kendine Barındırma özelliğini kullanarak Konsol Uygulamaları veya Windows Hizmetleri içinde Kontrol Paneli'ni barındırabilirsiniz.

Panosu etkinleştirdiğinizde, /hangfire/ uzantısında kullanılabilir hale gelir. Bu kontrol panelinde, arka planda çalışan işleri yönetebilir, arka plan işlerini zamanlayabilir ve tekrarlayan işler ile ateşle ve unut işleri görebilirsiniz. İşler, bir iş kimliği kullanılarak tanımlanabilir.

Canlı işleme

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

Başarılı işler

Başarılı işlere aşağıda bakın.

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

Zamanlanmış işler

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

Uygulamanız çalışırken, Hangfire, yapılandırılan ayarlarla arka plan işlerini işlemeyi üstlenir.

Daha gelişmiş yapılandırma seçenekleri ve özellikler için Hangfire belgelerine göz atmayı unutmayın: Hangfire Belgeleri ve tam kod GitHub Hangfire Demo adresinde bulunabilir.

IronPDF Tanıtımı

IronPDF for .NET PDF Generation, Iron Software'ın PDF Kütüphanesi'nden bir NuGet paketidir ve PDF belgelerini okumaya ve oluşturmanıza yardımcı olur. Biçimlendirilmiş belgeleri stil bilgileriyle kolayca PDF'e dönüştürebilir. IronPDF, HTML içeriğinden kolayca PDF oluşturabilir. URL'den HTML'yi indirip ardından PDF oluşturabilir.

IronPDF'in en önemli özelliği, tasarımları ve stilleri koruyan HTML'den PDF'e Dönüştürme fonksiyonudur. Web içeriğinden PDF oluşturabilir, raporlar, faturalar ve belgeler için idealdir. Bu özellik, HTML dosyalari, URL'ler ve HTML dizileri PDF'lere dönüştürmesini 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şlarken

IronPDF Kütüphanesini Kurma

NuGet Paket Yöneticisini Kullanarak Yükleme

IronPDF'i NuGet Paket Yöneticisi'ni kullanarak Hangfire .NET projenize entegre etmek için izlenecek adımlar:

  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 düğmesine tıklayın.
  5. Herhangi bir lisans sözleşmesi bildirimini kabul edin.

Package Manager Console'u kullanmayı tercih ederseniz, aşağıdaki komutu çalıştırın:

Install-Package IronPdf

Bu, IronPDF'i projenize getirecek ve yükleyecektir.

NuGet Web Sitesi Üzerinden Yükleme

IronPDF'in özellikleri, uyumluluğu ve ek indirme seçeneklerini içeren detaylı bir genel bakış için IronPDF sayfasını ziyaret edin: https://www.nuget.org/packages/IronPdf.

DLL Üzerinden Yükleme

Alternatif olarak, IronPDF'yi projenize doğrudan DLL dosyasını kullanarak ekleyebilirsiniz. IronPDF doğrudan indirme yoluyla DLL içeren ZIP dosyasını bu sayfadan indirebilirsiniz. Açın ve DLL'i projenize dahil edin.

Şimdi uygulamamızı, bir web sitesini PDF dosyası olarak indirmek için bir arka plan işleme işlevi eklemek üzere 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 yerleşik bir yönteme sahiptir. Bu yöntemi, bir işi indirip belirli 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 kullanıma açmak için 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, indirme işlemini başlatmak için web sitesi URL'sini alan ve başka bir API ile sonucu PDF olarak indiren iki API oluşturduk. API'ler aşağıda gösterildiği gibi tasvir edilmiştir.

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

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

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

Lisanslama (Ücretsiz Deneme Mevcut)

Yukarıdaki kodun susuz çalışması için bir lisans anahtarı gereklidir. IronPDF Ücretsiz Deneme ile kayıt olunarak geliştiriciler için bir deneme lisansı mevcuttur. Deneme lisansı için kredi kartı gerekmemektedir. E-posta kimliğinizi sağlayarak ücretsiz deneme için kayıt olabilirsiniz.

Sonuç

IronPDF ve Hangfire, arka planda PDF oluşturma ve indirme için harika bir kombinasyon oluşturur. Hangfire, uzun süreli görevlerin etkili bir şekilde işlenmesini sağlarken, IronPDF PDF oluşturma için esnek ve kullanımı kolay bir çözüm sunar. IronPDF hakkında daha fazla bilgi edinmek için IronPDF Dokümantasyonunu ziyaret edebilirsiniz.

Ayrıca, kodlama becerilerinizi geliştirip modern uygulama gerekliliklerini karşılayabilecek Iron Software Ürün Paketi'ndeki diğer araçları da keşfedin.

Sıkça Sorulan Sorular

.NET Core'da Hangfire nedir?

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ütülmesi için güvenilir ve esnek bir çözüm sunar.

.NET Core uygulamasına Hangfire nasıl kurarım?

Hangfire, bir NuGet paketi olarak kurulabilir. Bu paketi eklemek için .NET CLI kullanarak şu komutu çalıştırabilirsiniz: dotnet add package Hangfire --version 1.8.6.

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

Hangfire, Ateşle ve unut işleri, Gecikmeli işler, Tekrarlanan işler ve Devam niteliğindeki işler gibi çeşitli arka plan işi türlerini destekler.

.NET Core uygulamasinda Hangfire nasıl konfigüre edilir?

Hangfire, Startup.cs dosyasında, iş depolamasını ayarlayıp Hangfire sunucusunu başlattığınız yerde yapılandırılır. Genellikle Hangfire hizmetlerinin eklenmesini ve bir SQL Server veya bellek içi depolamasının ayarlanmasını içerir.

Hangfire Dashboard nedir?

Hangfire Dashboard, arka plan işleri izlemek ve yönetmek için bir araçtır. Canlı işleme, başarılı işler ve zamanlanmış işler hakkında bilgi sağlar ve bir web arayüzü aracılığıyla erişilebilir.

Hangfire kullanarak arka plan işini nasıl oluşturabilirsiniz?

Arka plan işler, Hangfire kullanılarak metodları işler olarak tanımlayıp ardından Hangfire API'si kullanarak sıraya alarak oluşturulabilir. İşler, hemen, bir gecikmeden sonra ya da yinelenen bir şekilde çalışacak şekilde zamanlanabilir.

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

Bir PDF kütüphanesi kullanarak HTML'den PDF'ye dönüşümu destekleyen bir PDF oluşturma işlemini arka planda gerceklestirebilirsiniz. Bu, Hangfire gibi bir arka plan işleme cercevesine entegre edilerek HTML iceriginden PDF oluşturulmasini otomatiklestirmeyi saglar.

.NET ortamında bir PDF oluşturma kütüphanesinin bazı özellikleri nelerdir?

Bir PDF oluşturma kütüphanesi, HTML dizgilerini, 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 kullanışlıdır.

.NET projesine bir PDF oluşturma kütüphanesini nasıl kurabilirsiniz?

Bir PDF oluşturma kütüphanesi, Visual Studio'da NuGet Paket Yöneticisi kullanilarak veya Paket Yönetici Konsolu'nda belirli bir komutla yüklenebilir. Ayrica DLL, kütüphanenin web sitesinden direkt olarak indirilebilir.

Filigran içermeyen bir PDF oluşturma kütüphanesi kullanmak için ne gereklidir?

PDF oluşturma kütüphanesini filigransız kullanmak için genellikle bir lisans anahtarı gereklidir. Kütüphanenin websitesine kayıt yaparak ücretsiz bir deneme lisansı mevcut olabilir.

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

HTML'yi PDF'ye dönüştürmek için PDF oluşturma kütüphanesini kullanan bir arka plan işi ayarlayarak .NET Core'da Hangfire ile bir PDF oluşturma aracını entegre edebilirsiniz. Bu, uygulamalarda otomatik belge oluşturma ve yönetimini sağlar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

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