Rhino.Compute Active Children Not Ending

I am curious how I know if the active children on the EC2 rhino compute server are shutting down. Having not pinged the server for over an hour, I was getting larger values when pinginging:
…:80/idlespan

However after an hour or so, it seems to have reset, but my report for:

…:80/activechildren is still showing “4”

Does anyone know where the settings are to either set how long the service sits idle or if the active children are even getting shut down? The only way I have found is to go to the RDP and shut them down in the task manager manually

For others who are finding this I did find these ways of pinging the server to be helpful:
http://serverIP:80/healthcheck
http://serverIP:80/robots.txt

I assume this means: how many seconds since the service has been used. (I was under the impression it would shut down after a time)
http://serverIP:80/idlespan

http://serverIP:80/

How many active rhino compute instances are running on the server.
http://serverIP:80/activechildren

Launches new child (this is how the rhino compute get’s activated for GH)
http://54.91.207.82:80/grasshopper
http://serverIP:80/launch

Please update your Rhino.Compute installation as there have been some changes that filter out calls that were previously spinning up unnecessary children.

1 Like

Thanks Luis the update resolved that issue

1 Like

In the most recent version the /activechildren endpoint calls InitializeChildren() which causes the counter to increment and the /idlespan endpoint to reset. Is this intended?

This has been the default behavior since we created the IIS setup guide (as far as I know). Basically, we had to add a flag to tell rhino.compute whether or not it should launch an instance of compute.geometry when it starts up. When you’re running rhino.compute locally, this is the default behavior. However, when you’re running rhino.compute on a remote VM, what we found was idle webcrawler traffic that was hitting on port 80 was causing IIS to spin up an instance of rhino.compute and then it would automatically launch a child instance of compute.geometry… even if you weren’t the one who sent the request (it was just a web crawler who kicked everything off). So, we added a flag to the project which would tell rhino.compute to only spin up a child instance whenever a true authenticated request got sent to it. So, if you call the /activechildren endpoint, it will do as you said… it will call InitializeChildren which will start trying to spin up as many children as you have specified. The /idlespan timer will then start from there. If you want to test whether the rhino.compute server is up and working, but don’t want to spin up a child, you can use the /healthcheck endpoint. Does that help clarify things?

4 Likes

Thanks Andy. This background is great.