Although not personally tried it myself, I have seen service deployed in production that takes screenshots using Webdriver from Selenium.
- Build the selenium Webdriver https://code.google.com/p/selenium/
- Use the RESTful API to communicate with the server. There are specific calls where you can issue request to fetch a website, and take a screenshot of the current instance
everything is done in the background, so I think it fits your requirement.