Background workers

peterkneale's Avatar


09 Feb, 2012 09:27 AM

I started using a few canoe accounts last week and was immediately addicted to how easy you guys have made the deployment process.

I upgraded to the catamaran plan, thinking it gave me access to a background worker as well as the regular 'web' workers. It looks like these aren't available on that plan - and perhaps aren't available at all from what I can see.. Is this correct?

If that part of your platform is still under development I understand - Do you want a beta tester as im quite keen to get started with a background process. Alternatively I will be polling a webpage using a third party site and using that to trigger processing of my message queue..

Keep up the good work.

  1. Support Staff 1 Posted by friism on 09 Feb, 2012 06:29 PM

    friism's Avatar

    Hi Peter

    You are correct, background workers are not quite ready yet, but we'll put you on the beta-tester list.

    Polling a url is a workable solution, you might want to take a look at MomentApp:

    ... and Phil Haacks webbackgrounder:


  2. 2 Posted by peterkneale on 10 Feb, 2012 12:37 AM

    peterkneale's Avatar

    Thanks - do you have any rough ETA for the background workers? Any advice on how they will be implemented so that i dont architect something the wrong way in the meanwhile. I'm really hoping they will be regular windows services.

    Moment App doesnt support polling unfortunately, just a single hit. Amazon SNS looks promising though..

  3. Support Staff 3 Posted by rune on 10 Feb, 2012 01:04 AM

    rune's Avatar

    Hopefully we'll have the beta ready soon, but at this point we can't give firm estimates on when background workers will be available for testing.

    If you design your background worker as a console application you should be good to go when we launch the feature! That should also be even easier to implement than a Windows service.


  4. rune closed this discussion on 10 Feb, 2012 01:04 AM.

  5. peterkneale re-opened this discussion on 09 Mar, 2012 03:26 AM

  6. 4 Posted by peterkneale on 09 Mar, 2012 03:26 AM

    peterkneale's Avatar

    Can i just clarify something about how these background processes will work in practice..

    I have a Catamaran plan for my production environment, which i will now configure to use one web and one background worker. That much is straightforward.

    What should i do about my test environment that i also host with you on just a Canoe plan. I only use it briefly just to sanity check my release. Do i need to create two applications? one for the web worker and one for the background worker?

    I'm not trying to get around the limitations of that plan.. i'd just like an environment where i can try out your new background workers without affecting production just yet.

  7. Support Staff 5 Posted by rune on 09 Mar, 2012 03:29 AM

    rune's Avatar

    Hi Peter,

    You're only charged for the milliseconds that you use workers beyond the one that's free in the Canoe plan, so you could just scale your application up with an additional worker while you do the sanity check on your test environment and then scale it down as soon as that is done. That way the cost will be reduced significantly.

    Another option, if you want to avoid any costs on that application at all, is that you could scale your application so that you test the background worker first, and then your web worker afterwards. That'll make it hard to verify certain integration aspects between the two, but if you're OK with that it might be a good option.


  8. rune closed this discussion on 09 Mar, 2012 03:29 AM.

  9. peterkneale re-opened this discussion on 09 Mar, 2012 04:07 AM

  10. 6 Posted by peterkneale on 09 Mar, 2012 04:07 AM

    peterkneale's Avatar

    Is it okay if i just create a seperate applications?
    Release (1 of each worker type assigned)
    Test - Web (1 web worker assigned)
    Test - App (1 background worker assigned)

  11. Support Staff 7 Posted by friism on 09 Mar, 2012 07:14 PM

    friism's Avatar

    Hi Peter, the AppHarbor terms don't allow creating multiple AppHarbor applications with the intent of scaling an app. It would also be a hassle for you, since it would be difficult to share configuration and add-ons between the various AppHarbor applications involved in making your app work.


  12. 8 Posted by peterkneale on 17 Mar, 2012 11:10 AM

    peterkneale's Avatar

    Are all of the configuration variables also applied to the app.config for the as they are with a web.config?
    Thanks for your help

  13. Support Staff 9 Posted by friism on 17 Mar, 2012 06:17 PM

    friism's Avatar

    Indeed they are.


  14. friism closed this discussion on 17 Mar, 2012 06:17 PM.

  15. peterkneale re-opened this discussion on 17 Mar, 2012 10:35 PM

  16. 10 Posted by peterkneale on 17 Mar, 2012 10:35 PM

    peterkneale's Avatar

    Any chance that you could tell me if there are any errors being thrown by my background worker? I have deployed it a couple of times but unable to get it working.

    My application is: mycodeonline and there should be a console application called MessageProcessorHost running on my worker process.

    I have it configured to send me an email via SendGrid (using the same credentials as my website) when it starts up but nothing is coming through. Its my assumption that either a DLL that it depends on is not being copied across or that the transform process isnt correctly merging my default settings in my app.config with those that i have configured via the Configuration Settings tab in my app harbour account.

    Thanks for your help again! :)

  17. Support Staff 11 Posted by friism on 21 Mar, 2012 11:58 PM

    friism's Avatar

    Is this a duplicate of this discussion by any chance?


  18. peterkneale closed this discussion on 22 Mar, 2012 01:37 AM.

Discussions are closed to public comments.
If you need help with AppHarbor please start a new discussion.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac