powered by UserVoice

Windows Azure Feature Voting Forum

611 votes

Provide a way to schedule worker roles so they only run when needed

If worker roles could be scheduled, like windows task scheduler then we would massively reduce the required cpu time used.

  1. Comments
  1. 3

    we need DTS/SSIS to schedule jobs!

  2. Seems like it would be relatively easy to write a service that crossed .NET Terrarium (download an assembly and run it in an already warm instance) and crontab (schedule jobs to run at a particular time).

    While it would be better if Microsoft did it, someone could write a service that allowed you to zip a control file and a .NET assembly. The control file would indicate the desired 4 hour block to schedule it in, and would also contain any necessary API URL's and keys.

    The service would fire up at... more

  3. 3

    @Steven nagy - again, we run a process for 1 hour a day. we have to use an entire worker role running 24 hrs a day to make this viable. we want it in a worker role for single point of failure logic. why should we have to pay for 24 hours a day for 1 hours usage ? This is a critical feature and relevantly should be implemented as part of a dynamic deployment and removal of worker roles via the Service API. they have more than 1 team you know ?

  4. 3

    there is no way this is a waste of time. we currently have a worker running 24 hrs a day - at a cost of $88 per month just for a process that runs once a day but for single-point-of-failure - something we don't want to run in our core web role. this means we pay for 24 hours of usage - even though we run the process for 30 mins a day ?

  5. Autoscale samples are prolific. I don't see a need to waste the Azure team's time on this feature. I'd prefer to see more services such as email and distributed cache as a service. Cheers.

  6. I'd love to be able to reduce the cost of running roles. I have a worker role than I only need to spin up when there are blob(s) that the web roles are writing that processing.

    If there was an option to suspend the worker role unless certain conditions were met (eg more than 5 blobs available or "at least 15 mins since last run and a blob available") otherwise keep the role suspended (and not costing me compute!)

  7. I would like the "pay for actual CPU usage" feature for worker roles that is idle most of the time, or the possibility to pause/resume the role from a scheduler - all to reduce cost of the Azure hosting.

  8. I vote for this feature. Like windows scheduler, I would like to run an app on a certain time of the day.

  9. Isn't this a service that a third party can provide on top of azure? I'd prefer Microsoft provide solutions that ONLY microsoft can provide. .NET 4 test bed only Microsoft can do that. Compute Slices...another party can provide a service on top of azure that will handle that.

  10. 2

    I'd like to see something a little more elegant. Keep the existing worker roles, and simply add a new (optional) configuration key "queueDrivenWorker", which takes a queue name to subscribe to, and other optional parameters to indicate how fast worker roles can be spun up to meet backed up queues. I could write a lot on the performance handling, but that goes beyond the scope of this point. This way workers can be spun up based on an existing azure service, queues. As work comes up, workers get... more

  11. There is a huge gap between the originally suggested dynamic service enablement and a general purpose cloud-based scheduling feature. I would guess that Microsoft would suggest that a cloud-based scheduling feature is better facilitated by a partner solution. As for dynamic service enablement, this does seem more in the venue of azure framework itself. This would be like non-dedicated compute. Perhaps similar to how shared-sites work with most IIS hosting providers.

  12. 3

    How about a simple cron job implementation that would be handled by the fabric?
    I have a job that runs every day and collects data from an external web site and stores it in SQL Azure. Today I'm using an ASP.NET site that offers cron job scheduling and the cron job just hits the page once a day. Hosting of the ASP.NET site is about $10 a month while the equivalent price on Azure would be close to $90 a month. Running a worker role with an internal timer sounds a bit lame for the same result and having a... more

  13. 1

    I put up a request for something that would provide the same benifits:

    Allow simple Managed Tasks to run distributed within the Cloud and pay for CPU time used (ie NO VMs)

  14. Admin

    Thanks Brian, I appreciate you jumping in here and explaining why you *might* use this functionality if it was available to you.

    Mike

  15. 3

    my need is as you suggested, a task that runs for 5 mins once every 24hours does not need to role deployed for 24 hours. We could use the new management api to stop the role and start it again but that would require an external client app, which introduces a single point of failure

  16. Admin

    Thanks for suggesting this. Can you please help me understand this one a bit more and your motivation for including it? With Windows Azure compute hours are determined based upon when your application is deployed (machine time), not CPU time. Was the primary motivation for suggesting this that by doing so you thought you would be reducing the cost to run your service on Windows Azure (or something else)?

    Thanks for clarifying - Mike

  17. Inter role communication

  18. fyi, i've been using System.Timers.Timer to perform this type of operation. There's no pretty ui, but I can configure things.

powered by UserVoice