locked
High Availability Scheduler RRS feed

  • Question

  • User-228328136 posted
    We have couple of tasks which need to be performed at particular datetime of every month. Ex: 5th midnight of every month, last day of the month.

    We had created windows service to call a WCF endpoint at the scheduled time to achieve this.

    But since we have moved on to support high availability, our .NET application is hosted on multiple non clustered windows servers sitting behind h/w load-balancers.

    Now deploying this windows service on the three application servers results in running the job thrice.

    Our deployment structure looks like the following,

    Load Balancer -> Web Server 1, 2, 3 -> Load Balancer -> App Server 1, 2, 3 -> Clustered SQL Server

    We also use Reactive Extension, clustered RabbitMQ and Redis for other use cases.

    We looked into clustered task scheduler but our servers are not clustered.

    Please suggest an approach to solve this problem
    Thursday, December 15, 2016 3:38 PM

Answers

  • User-718146471 posted

    Ok, is your task schedule database driven? As in the database contains details on when the service should run? In my instance, I have the start time, end time, and day managed by the database along with the read time interval between attempts in minutes. To accomplish this on a non-clustered environment running multiple servers, you would start each server's service at 15 second apart intervals. Then during the read time, you would have a field in there that would be next run date and time. You update the run-date/time to the next time period. This way, each server will query the DB asking when the next time to run is. Does that make sense? How are you doing it now?

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 15, 2016 4:20 PM