Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to fully using Java Process API for running instances #37

Open
jtwalraven opened this issue Mar 2, 2018 · 2 comments
Open

Switch to fully using Java Process API for running instances #37

jtwalraven opened this issue Mar 2, 2018 · 2 comments
Assignees
Labels

Comments

@jtwalraven
Copy link
Contributor

jtwalraven commented Mar 2, 2018

It would be nice if the project did not have to rely on generating scripts to run other instances. The ProcessBuilder API has a way that the launching could be simplified and streamlined. This would also allow for additional future features:

  • waiting for the process to stop before restarting
  • force killing the process
  • observing the build logs
  • checking progress on launches.
  • etc.

@ErnestOrt I already have working code for this. Hopefully I will get to polishing it soon and making a PR.

@ErnestOrt
Copy link
Owner

ErnestOrt commented Mar 2, 2018

Completely agree @jtwalraven! If you feel you can improve it, do not hesitate to code.

I remember this part was giving too much troubles while developing it since remember It must be compatible with Windows and Unix.

Thanks&Cheers!

@menelaosbgr
Copy link
Contributor

Is it better to use the Java Process Builder API ?

Don't get me wrong, it probably is - I have not played around with it a lot.

I had been using spring-skipper at some point to do deployments on a windows machine (using the development-local-deployer).

See: https://github.com/spring-cloud/spring-cloud-deployer-local/blob/master/spring-cloud-deployer-local/src/main/java/org/springframework/cloud/deployer/spi/local/LocalAppDeployer.java#L464

I can't say I was happy with it.
I know spring skipper is targeted for using the deployers to cloud infrastructures (e.g. docker, kubernities). The local deployer is targetted for development/testing.

But in any case, I commonly ran against problems like heap space or having to assign more memory to the deployer. At some point after deploying over 15 microservices (flatjars), new services wouldn't start.
Additionally, when the deployer died, so did all the child instances.

I definitely guess these things can be fixed, and we didn't have the time. We went for a better solution.
But definitely things to look out for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants