<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Murat Arslan</title>
    <description>The latest articles on DEV Community by Murat Arslan (@arslanmurat06).</description>
    <link>https://dev.to/arslanmurat06</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F178370%2Ffaaaa10f-e778-4c44-9939-482e0bcda69f.jpeg</url>
      <title>DEV Community: Murat Arslan</title>
      <link>https://dev.to/arslanmurat06</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arslanmurat06"/>
    <language>en</language>
    <item>
      <title>Background jobs with Hangfire and .NET 6</title>
      <dc:creator>Murat Arslan</dc:creator>
      <pubDate>Mon, 07 Feb 2022 11:45:55 +0000</pubDate>
      <link>https://dev.to/arslanmurat06/background-jobs-with-hangfire-and-net-6-3g0n</link>
      <guid>https://dev.to/arslanmurat06/background-jobs-with-hangfire-and-net-6-3g0n</guid>
      <description>&lt;p&gt;For .NET environment sometimes you need some scheduler process for recurring jobs. Most popular schedule tools are Quartz and Hangfire.&lt;/p&gt;

&lt;p&gt;Before, I had used Quartz in my some projects but after introduced with Hangfire, it completely changed my mind. Hangfire is open and free for commercial use. And one of my project I used Hangfire and you can see the difference between these two tools when you experience both of them. With Hangfire all database management is handled by itself. It creates all related tables as job histories, job definitions etc. automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnrkmah31ipxxc3unbpt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnrkmah31ipxxc3unbpt9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So it makes your jobs very easy. And it provides a dashboard for you to see the jobs details and manage these jobs as delete, update etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpe5gvvzp085nt3kjgmqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpe5gvvzp085nt3kjgmqc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also Hangfire makes the test easy with its mock library. You can mock Hangfire by using Hangfire mock and Hangfire MemoryStorage for mocking db processes .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gcn2t8o6l6stn0zj8bu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gcn2t8o6l6stn0zj8bu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More details and code : &lt;a href="https://arslanmurat06.github.io/posts/hangfire/" rel="noopener noreferrer"&gt;Go to article&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code : &lt;a href="https://github.com/arslanmurat06/healthchecker" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>dotnet6</category>
      <category>jobs</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
