10

The work I do often involves deploying a batch of jobs onto a machine, and then walking away.

In order to minimize turn around, I'm a huge fan of Pushover for notifications on completion. Pushover is fantastic because it's an web service API call that can be easily integrated into various languages and scripts.

What I am looking for is something very similar, that would present a web-accessible progress bar, which would be as easy to integrate as a normal command line progress bar library. This way, I can better gauge how soon something will finish, if I'm away from my main machine.

Idea would be: API Call creates a UID for a progress bar, with an expected number of updates. Then client can update the number of executed updates via another call (curl or httplib for example). The progress bar itself should be accessible as a simple webpage.

I'm hoping for a third party service, as I can't just run apache on the machines -- typically they're firewalled.

Note: I would definitely prefer a service, but I hypothetically could be open to something I could host (AWS Free tier?).

0

1 Answer 1

0

Provided your batch is a Bash script behind the firewall, the ideal way to this would be AWS API Manager.

For example:

  1. Make some counter in your shell script, which will be incremented and after reaching some value it will update some S3 bucket
  2. The update in bucket files will invoke Lambda function which will update some global variable
  3. You can create API in API manager which will check this variable and return progress

Of course, you can easily build a web-frontend for your Lambda.

Another option for this task is WebSockets in API Manager that allows serverless bidirectional communication and it is even simpler because you don't need a web-frontend and probably don't need Lambda, API Manager can send the progress directly to your Pushover and/or device.

Another possible option is Step Function, look at this sample which does the same thing you described.

Multiple ways of implementation this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.