Take the community feedback survey now.

Scott Reed
Nov 28, 2018
  3635
(7 votes)

Scheduled jobs in the DXC & The Autoheal Policy & Architecture

Scheduled jobs are a great way to write code that can run periodically and perform actions on your CMS or Commerce system through the Episerver API framework https://world.episerver.com/documentation/developer-guides/CMS/scheduled-jobs/ I have often used these to much success but in our latest project we needed to do some heavy CRUD syncing of data from 2 of our clients large systems in to the Episerver Commerce catalog structure.

We chose to use Scheduled jobs as we could use the API and we needed to do a few other things, we knew the jobs would be intensive but when we came to test some of this on the DXC we kept getting an issue with our largest fresh import of data.

The jobs were getting aborted, so we contacted Episerver support and were informed that Azure Auto Heal was turned on https://blogs.msdn.microsoft.com/appserviceteam/2017/08/17/proactive-auto-heal/ for the environments. Auto Heal will work out if instances have an issue and restart those instances however one of the thresholds it checks was memory usuage and for us the large fresh import was hitting this issue with memory due to the massive data set we were working with.

There are 2 options for this and around architecturing jobs that will cause heavy processing.

To note Episerver Support told me if you have a commerce site they can create another web app for this at no extra cost.

SO As a thought I'd suggest whenever using Scheduled jobs to consider how much data you are processing and how intensive they are and to consider separating jobs out as standard on the DXC to help mitigate any of these issues.

Nov 28, 2018

Comments

valdis
valdis Nov 30, 2018 05:02 AM

nais! I just love these healing policies. we are too lame and lazy to deal with high memory usage (or actually it was app intent to use as much as possible and troll GC) but there is always an easy way - just restart damn thing and move on.. :)

Magnus Rahl
Magnus Rahl Nov 30, 2018 02:39 PM

ICYMI there has been a long standing bug in ASP.NET which prevents cache trimming to run correctly, see my blog post here: https://world.episerver.com/blogs/Magnus-Rahl/Dates/2017/11/bug-in-aspnet-cache-causes-problems-with-azure-proactive-auto-heal/ This results in ever-growing cache when an application runs under memory pressure. Things in epi are cached with timeouts, invalidated when updated etc, but when churning through big data sets it does depend on the LRU algorithm of the cache trimmer to free up memory. The ASP.NET bug has been fixed in .NET Framework 4.7.2 but that fix is still not rolled out to Azure app service in all regions (but should be any day now). 

Please login to comment.
Latest blogs
Optimizely CMS - Learning by Doing: EP06 - Create Header, Footer, Menu & Component/View for Blocks

  Episode 6  is Live!! The latest installment of my  Learning by Doing: Build Series  on  Optimizely CMS 12  is now available on YouTube! This vide...

Ratish | Nov 4, 2025 |

Going Headless: 3 Ways to Store Custom Data in Optimizely Graph

Welcome to another installment of my  Going Headless  series. Previously, we covered: Going Headless: Making the Right Architectural Choices Going...

Michał Mitas | Nov 3, 2025

A day in the life of an Optimizely OMVP - What's New in Optimizely CMS: A Comprehensive Recap of 2025 Updates

Hello and welcome to another instalment of a day in the life of an Optimizely OMVP. On the back of the presentation I gave in the October 2025 happ...

Graham Carr | Nov 3, 2025

Optimizely CMS Mixed Auth - Okta + ASP.NET Identity

Configuring mixed authentication and authorization in Optimizely CMS using Okta and ASP.NET Identity.

Damian Smutek | Oct 27, 2025 |

Optimizely: Multi-Step Form Creation Through Submission

I have been exploring Optimizely Forms recently and created a multi-step Customer Support Request Form with File Upload Functionality.  Let’s get...

Madhu | Oct 25, 2025 |

How to Add Multiple Authentication Providers to an Optimizely CMS 12 Site (Entra ID, Google, Facebook, and Local Identity)

Modern websites often need to let users sign in with their corporate account (Entra ID), their social identity (Google, Facebook), or a simple...

Francisco Quintanilla | Oct 22, 2025 |