{"id":1264,"date":"2014-06-10T08:51:14","date_gmt":"2014-06-10T08:51:14","guid":{"rendered":"http:\/\/blog.jaringanhosting.com\/?p=1264"},"modified":"2014-06-10T08:54:41","modified_gmt":"2014-06-10T08:54:41","slug":"asp-net-4-5-2-hosting-indonesia-bersama-jaringanhosting-com-cara-schedule-background-jobs-menggunakan-queuebackgroundworkitem-pada-asp-net-4-5-2","status":"publish","type":"post","link":"https:\/\/blog.jaringanhosting.com\/index.php\/asp-net-4-5-2-hosting-indonesia-bersama-jaringanhosting-com-cara-schedule-background-jobs-menggunakan-queuebackgroundworkitem-pada-asp-net-4-5-2\/","title":{"rendered":"ASP.NET 4.5.2 Hosting Indonesia bersama JaringanHosting.com :: Cara Schedule Background Jobs Menggunakan QueueBackgroundWorkItem pada ASP.NET 4.5.2"},"content":{"rendered":"<p><a title=\"ASP.NET 4.5.2 Hosting Indonesia JaringanHosting.com\" href=\"http:\/\/jaringanhosting.com\/Indonesia-ASP-NET-452-Hosting\">ASP.NET<\/a> baru-baru ini merilis versi terbarunya yaitu .NET 4.5.2. Pada versi terbarunya ini ASP.NET mendukung HostingEnvironment.QueueBackgroundWorkItem method ini ditemukan dalam namespace System.Web.Hosting. Pada kesempatan ini saya akan menunjukkan bagaimana Anda dapat menggunakannya untuk menjadwalkan item pekerjaan latar belakang dalam aplikasi ASP.NET.<br \/>\n<a title=\"ASP.NET 4.5.2 Hosting Indonesia JaringanHosting.com\" href=\"http:\/\/jaringanhosting.com\/Indonesia-ASP-NET-452-Hosting\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1257\" alt=\"banner-jarhost-2_zps2ea5225d\" src=\"http:\/\/blog.jaringanhosting.com\/wp-content\/uploads\/2014\/06\/banner-jarhost-2_zps2ea5225d.png\" width=\"712\" height=\"280\" srcset=\"https:\/\/blog.jaringanhosting.com\/wp-content\/uploads\/2014\/06\/banner-jarhost-2_zps2ea5225d.png 712w, https:\/\/blog.jaringanhosting.com\/wp-content\/uploads\/2014\/06\/banner-jarhost-2_zps2ea5225d-300x117.png 300w\" sizes=\"(max-width: 712px) 100vw, 712px\" \/><\/a><\/p>\n<p>Metode HostingEnvironment.QueueBackgroundWorkItem memungkinkan Anda menjadwalkan item pekerjaan latar belakang yang kecil. ASP.NET mencegah IIS untuk mengakhiri proses pekerja secara tiba-tiba sampai semua item pekerjaan latar belakang telah selesai.<\/p>\n<p>Alasan untuk menggunakan QueueBackgroundWorkItem adalah Anda tidak perlu khawatir tentang proses pada IIS yang berhenti sebelum waktunya.<\/p>\n<p><strong>Dasar Penggunaan Metode QueueBackgroundWorkItem<\/strong><br \/>\nMetode QueueBackgroundWorkItem mendefinisikan dua overloads, yang masing-masing menerima satu parameter. Anda dapat melewati salah satu jenis delegasi berikut:<br \/>\n<code>Action<br \/>\nFunc&lt;CancellationToken, Task&gt;<\/code><\/p>\n<p>Berikut adalah bagaimana Anda bisa melewati ekspresi lambda untuk overload pertama:<br \/>\n<code>HostingEnvironment.QueueBackgroundWorkItem(cancellationToken =&gt;<br \/>\n{<br \/>\n\/\/ Some long-running job<br \/>\n});<\/code><\/p>\n<p>HostingEnvironment.QueueBackgroundWorkItem(async cancellationToken =&gt;<br \/>\n{<br \/>\nvar result = await LongRunningMethodAsync();<\/p>\n<p>\/\/ Do something with result<br \/>\n\/\/ &#8230;<br \/>\n});<\/p>\n<p>private void QueueWorkItem()<br \/>\n{<br \/>\nFunc workItem = LongRunningMethodAsync;<br \/>\nHostingEnvironment.QueueBackgroundWorkItem(workItem);<br \/>\n}<\/p>\n<p>private async Task LongRunningMethodAsync(CancellationToken cancellationToken)<br \/>\n{<br \/>\n\/\/ Some long-running job<br \/>\n}<\/p>\n<p>Berikut adalah contoh yang lebih lengkap tentang bagaimana QueueBackgroundWorkItem dapat digunakan dalam controller ASP.NET MVC. Setelah menciptakan beberapa model, controller register item pekerjaan latar belakang yang membuat panggilan (berpotensi) lama berjalan ke API remote:<br \/>\n<code>public class FooController : Controller<br \/>\n{<br \/>\n[HttpPost]\npublic ActionResult Create(FooInputModel input)<br \/>\n{<br \/>\n\/\/ Process the input somehow<br \/>\n\/\/ ...<\/code><\/p>\n<p>Action workItem = PostToRemoteService;<br \/>\nHostingEnvironment.QueueBackgroundWorkItem(workItem);<\/p>\n<p>return View();<br \/>\n}<\/p>\n<p>private async void PostToRemoteService(CancellationToken cancellationToken)<br \/>\n{<br \/>\nusing (var client = new HttpClient())<br \/>\n{<br \/>\nvar response = await client.PostAsync(&#8220;http:\/\/example.com\/endpoint&#8221;,<br \/>\nnew StringContent(&#8220;&#8230;&#8221;), cancellationToken);<\/p>\n<p>\/\/ Do something with response<br \/>\n\/\/ &#8230;<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/ More action methods<br \/>\n\/\/ &#8230;<br \/>\n}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ASP.NET baru-baru ini merilis versi terbarunya yaitu .NET 4.5.2. Pada versi terbarunya ini ASP.NET mendukung HostingEnvironment.QueueBackgroundWorkItem method ini ditemukan dalam namespace System.Web.Hosting. Pada kesempatan ini saya akan menunjukkan bagaimana Anda dapat menggunakannya untuk menjadwalkan item pekerjaan latar belakang dalam aplikasi<\/p>\n","protected":false},"author":2505,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/posts\/1264"}],"collection":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/users\/2505"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/comments?post=1264"}],"version-history":[{"count":0,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/posts\/1264\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/media?parent=1264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/categories?post=1264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/tags?post=1264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}