
Coravel membantu pengembang meningkatkan aplikasi .NET mereka dan berjalan cepat dengan membuat fitur aplikasi canggih seperti penjadwalan tugas/pekerjaan, antrian, caching, surat (dan banyak lagi!) Dapat diakses dan mudah digunakan. Dilengkapi dengan sintaksis yang sederhana, ekspresif, dan langsung.
Anda dapat melihat dokumen resmi di sini.

Biasanya, Anda harus mengkonfigurasi pekerjaan cron atau tugas melalui Windows Task Sadeculer untuk mendapatkan satu atau beberapa tugas yang terjadi kembali untuk dijalankan.
Dengan Coravel, Anda dapat mengatur semua tugas yang dijadwalkan di satu tempat menggunakan sintaks yang sederhana, elegan, fasih - dalam kode!
Coravel memberi Anda antrian konfigurasi nol yang berjalan di dalam memori untuk membongkar tugas lama ke latar belakang alih-alih membuat pengguna Anda menunggu permintaan HTTP mereka selesai!
Coravel memberi Anda API yang mudah digunakan untuk caching di aplikasi inti .NET Anda.
Secara default, ia menggunakan cache dalam memori, tetapi juga memiliki driver database untuk skenario yang lebih kuat!
Penyiaran acara Coravel membantu Anda membangun aplikasi yang dapat dipelihara yang bagian -bagiannya secara longgar digabungkan!
E-mail tidak semudah seharusnya. Beruntung bagi Anda, Coravel memecahkan ini dengan menawarkan:
appsettings.jsonAnda dapat mendukung pekerjaan open-source saya yang sedang berlangsung di BuyMeAcoffee.
Inilah seberapa cepat Anda dapat menggunakan Coravel untuk mulai membangun proses layanan pekerja dasar yang dapat mengeluarkan tindakan pada interval yang dijadwalkan:
dotnet new worker -n [NameOfYourApp] -o ./[NameOfYourApp]dotnet add package coravelProgram.cs dengan yang berikut: using Coravel ;
Console . OutputEncoding = System . Text . Encoding . UTF8 ;
var builder = Host . CreateApplicationBuilder ( args ) ;
builder . Services . AddScheduler ( ) ;
var host = builder . Build ( ) ;
host . Services . UseScheduler ( s =>
{
s . Schedule ( ( ) => Console . WriteLine ( "It's alive! ?" ) ) . EverySecond ( ) ;
} ) ;
host . Run ( ) ;dotnet runItu saja - Happy Coding!
Jika Anda membangun aplikasi .net dengan kerangka entitas maka Anda mungkin ingin melihat ke Coravel Pro. Ini adalah panel & alat admin untuk memelihara dan mengelola aplikasi .net Anda menjadi mudah!
Hangfire telah ada untuk sementara waktu - sebelum .NET modern (Core). Ini adalah alat fantastis yang memiliki banyak fitur yang tidak dilakukan Coravel. Khususnya: antrian persisten, mekanisme coba lagi, dukungan untuk banyak driver penyimpanan, dll.
Namun, hangfire diam (pada Maret 2023) tidak secara asli mendukung async/await sejati (di sini dan di sini). Ini berarti bahwa menggunakan hangfire dalam aplikasi web, misalnya, tidak akan seefisien mungkin ketika menggunakan utas yang melakukan operasi I/O.
Coravel diciptakan dengan primitif C# dan .NET modern dalam pikiran - seperti async/await dan utilitas injeksi ketergantungan bawaan .NET. Ini berarti bahwa Coravel dapat lebih mudah untuk dikonfigurasi dan akan sangat efisien dengan / tidak akan menggabungkan utas yang dibutuhkan aplikasi web Anda untuk menanggapi permintaan HTTP yang masuk.
Quartz adalah perpustakaan Java yang lebih tua yang diatur ke .net. Itu masih tidak terhubung ke alat injeksi ketergantungan .NET modern dengan baik. Beberapa orang berpikir bahwa API Coravel jauh lebih ringkas dan dapat dimengerti.
Misalnya, bandingkan sampel ini dari dokumentasi mereka dengan bagaimana bekerja dengan Coravel (misalnya Anda tidak perlu memahami cara "memulai" dan "berhenti" penjadwal Coravel, tetapi Anda harus bekerja secara manual dengan penjadwal kuarsa).
Tidak. Setidaknya, belum.
Coravel memproses item antrian dalam memori. Ketika aplikasi Anda turun, tidak akan memungkinkan aplikasi untuk mematikan sampai semua item diproses.
Filosofi Coravel adalah bekerja dengan baik dengan primitif .NET lainnya - yang berarti bahwa menggunakan perpustakaan lain itu mudah.
Coravel tidak mendukung mekanisme coba lagi secara internal karena saya sangat berhati -hati untuk tidak membakar Coravel dengan hal -hal yang tidak diperlukan. Saya ingin menjaga Coravel fokus pada apa yang terbaik (misalnya "Saya perlu penjadwalan pekerjaan, antrian, dll. Tanpa memerlukan infrastruktur tambahan dan konfigurasi yang rumit").
Misalnya, Anda dapat menggunakan Polly di dalam Invocables Anda untuk melakukan retries. Beberapa orang akan mengonfigurasi kelas dasar yang mewarisi dari IInvocable yang telah menarik kembali bawaan.
Tidak. Namun, ini dapat dicapai lagi dengan menggunakan perpustakaan penguncian terdistribusi yang telah teruji oleh distribusi. Anda dapat membuat Invoke() seperti ini:
public class TestInvocable : IInvocable
{
private ApplicationDbContext _context ;
private IDistributedLockProvider _distributedlock ;
public TestInvocable ( ApplicationDbContext context , IDistributedLockProvider distributedlock )
{
this . _context = context ;
this . _distributedlock = distributedlock ;
}
public async Task Invoke ( )
{
await using ( await this . _distributedlock . AcquireAsync ( ) )
{
await this . _context . Test . AddAsync ( new TestModel ( ) { Name = "test name" } ) ;
await this . _context . SaveChangesAsync ( ) ;
}
}
}