{"id":108,"date":"2022-05-26T15:41:40","date_gmt":"2022-05-26T07:41:40","guid":{"rendered":"https:\/\/just-a-web.com\/blog\/?p=108"},"modified":"2022-05-26T15:42:41","modified_gmt":"2022-05-26T07:42:41","slug":"azure-web-job-singleton","status":"publish","type":"post","link":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/","title":{"rendered":"Azure Web Job Singleton"},"content":{"rendered":"\n<p>We have one production issue where by our Azure Web Jobs are scale out to 2 instances.<\/p>\n\n\n\n<p>Having 2 instance running, which mean it will run two of the .exe files.<\/p>\n\n\n\n<p>And if your program is designed to be only single instance run, it will cause problems, you may observe that the log is messy when you wanna track it down.<\/p>\n\n\n\n<p>To solve this issue, there are two ways:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Refactor the code, always consider your program is scale-able, and writing the code to add a lock or something when processing logic.<\/li><li>Add Singleton property in the Settings.<\/li><\/ol>\n\n\n\n<p>For option 2:<\/p>\n\n\n\n<p>We could create a file called&nbsp;<strong>settings.job<\/strong>&nbsp;with the content: { &#8220;is_singleton&#8221;: true } and put it at the root of the WebJob directory. <\/p>\n\n\n\n<p><u>A<\/u>fter setting up, we can use web API to check, GET \/api\/continuouswebjobs\/{job name}\/settings.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"753\" height=\"104\" src=\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png\" alt=\"\" class=\"wp-image-109\" srcset=\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png 753w, https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton-300x41.png 300w\" sizes=\"(max-width: 753px) 100vw, 753px\" \/><\/figure>\n\n\n\n<p>Source: <a href=\"https:\/\/stackoverflow.com\/a\/40479371\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/stackoverflow.com\/a\/40479371<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have one production issue where by our Azure Web Jobs are scale out to 2 instances. Having 2 instance running, which mean it will run two of the .exe files. And if your program is designed to be only single instance run, it will cause problems, you may observe that the log is messy&hellip;&nbsp;<a href=\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Azure Web Job Singleton<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[12],"tags":[50,49,48],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-azure","tag-azure-web-job","tag-scale","tag-singleton"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Azure Web Job Singleton - Dynamics Blog<\/title>\n<meta name=\"description\" content=\"Code is running concurrently on multiple of Web Jobs instance and causing issue, apply Singleton in Settings or refactor the code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Web Job Singleton - Dynamics Blog\" \/>\n<meta property=\"og:description\" content=\"Code is running concurrently on multiple of Web Jobs instance and causing issue, apply Singleton in Settings or refactor the code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\" \/>\n<meta property=\"og:site_name\" content=\"Dynamics Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-26T07:41:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-26T07:42:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png\" \/>\n<meta name=\"author\" content=\"hk.ang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hk.ang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\"},\"author\":{\"name\":\"hk.ang\",\"@id\":\"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af\"},\"headline\":\"Azure Web Job Singleton\",\"datePublished\":\"2022-05-26T07:41:40+00:00\",\"dateModified\":\"2022-05-26T07:42:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\"},\"wordCount\":148,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af\"},\"image\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png\",\"keywords\":[\"Azure Web Job\",\"scale\",\"singleton\"],\"articleSection\":[\"Azure\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\",\"url\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\",\"name\":\"Azure Web Job Singleton - Dynamics Blog\",\"isPartOf\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png\",\"datePublished\":\"2022-05-26T07:41:40+00:00\",\"dateModified\":\"2022-05-26T07:42:41+00:00\",\"description\":\"Code is running concurrently on multiple of Web Jobs instance and causing issue, apply Singleton in Settings or refactor the code.\",\"breadcrumb\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage\",\"url\":\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png\",\"contentUrl\":\"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png\",\"width\":753,\"height\":104},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/just-a-web.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Azure Web Job Singleton\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/just-a-web.com\/blog\/#website\",\"url\":\"https:\/\/just-a-web.com\/blog\/\",\"name\":\"Dynamics Blog\",\"description\":\"A blog that related to coding stuff\",\"publisher\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/just-a-web.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af\",\"name\":\"hk.ang\",\"logo\":{\"@id\":\"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/just-a-web.com\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Azure Web Job Singleton - Dynamics Blog","description":"Code is running concurrently on multiple of Web Jobs instance and causing issue, apply Singleton in Settings or refactor the code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/","og_locale":"en_US","og_type":"article","og_title":"Azure Web Job Singleton - Dynamics Blog","og_description":"Code is running concurrently on multiple of Web Jobs instance and causing issue, apply Singleton in Settings or refactor the code.","og_url":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/","og_site_name":"Dynamics Blog","article_published_time":"2022-05-26T07:41:40+00:00","article_modified_time":"2022-05-26T07:42:41+00:00","og_image":[{"url":"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png","type":"","width":"","height":""}],"author":"hk.ang","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hk.ang","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#article","isPartOf":{"@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/"},"author":{"name":"hk.ang","@id":"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af"},"headline":"Azure Web Job Singleton","datePublished":"2022-05-26T07:41:40+00:00","dateModified":"2022-05-26T07:42:41+00:00","mainEntityOfPage":{"@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/"},"wordCount":148,"commentCount":0,"publisher":{"@id":"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af"},"image":{"@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage"},"thumbnailUrl":"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png","keywords":["Azure Web Job","scale","singleton"],"articleSection":["Azure"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/","url":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/","name":"Azure Web Job Singleton - Dynamics Blog","isPartOf":{"@id":"https:\/\/just-a-web.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage"},"image":{"@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage"},"thumbnailUrl":"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png","datePublished":"2022-05-26T07:41:40+00:00","dateModified":"2022-05-26T07:42:41+00:00","description":"Code is running concurrently on multiple of Web Jobs instance and causing issue, apply Singleton in Settings or refactor the code.","breadcrumb":{"@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#primaryimage","url":"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png","contentUrl":"https:\/\/just-a-web.com\/blog\/wp-content\/uploads\/2022\/05\/AzureWebJobSingleton.png","width":753,"height":104},{"@type":"BreadcrumbList","@id":"https:\/\/just-a-web.com\/blog\/2022\/05\/26\/azure-web-job-singleton\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/just-a-web.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Azure Web Job Singleton"}]},{"@type":"WebSite","@id":"https:\/\/just-a-web.com\/blog\/#website","url":"https:\/\/just-a-web.com\/blog\/","name":"Dynamics Blog","description":"A blog that related to coding stuff","publisher":{"@id":"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/just-a-web.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/7c5fde715b55adf97070f3506709b0af","name":"hk.ang","logo":{"@id":"https:\/\/just-a-web.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/just-a-web.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":2,"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":111,"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/posts\/108\/revisions\/111"}],"wp:attachment":[{"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/just-a-web.com\/blog\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}