Dynamics CRM and Azure Scheduler – intro

This week I have a meeting with my manager to discuss the personal goals I want to achieve this year. Goals that will benefit the company, and goals that will benefit me. Among these goals I have to define is the goal of skill / knowledge development. I decided I want to build up knowledge regarding the Azure platform. What I want to learn is:

  • What services does Azure offer?
  • How can I use these services in combination with Dynamics CRM?
  • How do I set up a cloud based architecture using Azure?
  • How can my customers benefit from Azure?
  • In what scenarios should I use Azure?

Last month I’ve been experimenting with some of the storage services, like Azure Table Storage. The scenario I described was using Azure Table Storage for offloading data. But as I already mentioned, Azure has to offer a lot more. Think of the Azure Scheduler, a scheduling service we can use to schedule recurring jobs (Kudos to my colleague Erik Aalbers for mentioning).

From what I understand of the Azure Scheduler, is that we can use the Azure Scheduler to declaratively describe actions to run in the cloud. It then schedules and runs those actions automatically. Azure Scheduler does not host any workloads or run any code.
It only invokes code hosted elsewhere—in Azure, on-premises, or with another provider. It invokes via HTTP, HTTPS, or a storage queue. The scheduler keeps a history of the executed jobs.

One of the most cool features of the Scheduler, is that we can create recurrent schedules. From an administrative point of view the advantage is that administrators will be able to change schedules, add jobs or remove jobs without having to call a developer.

After having read this introduction I see a number of scenarios in which we can use it in combination with CRM.

  • Plan recurrent maintenance jobs (e.g. automatic disposal of inactive records).
  • Trigger a job from within CRM (e.g. mass mailing).
  • Run complex batch jobs (without hitting the two minute execution limit).

As the documentation of the scheduler states, the Scheduler does not run any code. We have to invoke code that is running elsewhere, like e.g. an Azure web job.


In the next articles I’m going to implement a scenario in which we use the Azure Scheduler to invoke a job hosted on Azure that will interact with CRM (e.g. a long running batch job). From within CRM I will implement functionality to add a job to the Azure Scheduler that will be executed.

For now I’ve a lot of reading to do, to master the generic principles.

Stay tuned!