Question

How to deploy and execute one-off jobs on droplets?

Posted January 3, 2022 101 views
DeploymentDigitalOcean Droplets

I have a queue of tasks and I would like to start a number of droplets (via API) that will process these tasks. To achieve that, after droplet starts, it needs to download an executor, run the job for a day and then kill itself. What is the best way to achieve that?

I found documentation about cloud-init script with userdata and boot script, but I’m not sure they are the most suitable for the job running. Is there any other approach?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hello, @tkdev

You can create a simple bash script to connect to the droplets once they’re created via the API script and execute your tasks and then shut down the droplets once the job is completed.

You can also combine the tasks in one script, first create the droplet and wait for a bash prompt to access the droplet and execute your jobs.

You can check the DigitalOcean API Docs here:

https://docs.digitalocean.com/reference/api/example-usage/

Hope that this helps!
Regards,
Alex

  • Waiting in a bash script is not acceptable in the context of my task. I need the job to be started off by the droplet itself. You can assume droplet will be able to receive jobs via an API.

    The question is what is an elegant way of making the droplet to do it.

    • Hello there,

      Well, that will really depend on what needs to be achieved here. I suggested BASH because it is simple and it works really well with tasks like this one.

      I will recommend going with a scripting language or some software that you’re quite familiar with if this is possible.

      Regards,
      Alex