add a management shell
It would be nice to have a management shell (@rinus idea) in iTasks.
A shell where you can view current tasks, see open tcp connections etc.
This is especially nice to have when debugging distributed programs.
In other words, I want to be able to kill -9
tasks, kick users etc.
We came up with several options with each dealbreakers for each:
- At first I thought of implementing it as a shell on stdio but there is no way of reading stdio in a non-blocking fashion.
If the cross-platform
select
like function is ready this can be used but in the meantime it is not an option. - Another option would be to expose it on a different URL. However, in professional settings this might not be safe enough and history taught us that sending control and data over one line is doomed to fail.
- Yet another option would be to expose it via a different port (that is blocked in the firewall for external use). The problem with that is that it is not that easy as just starting another task engine because the webservice is ingrained with the engine. This can be overcome by making the webservice just a task.
But there are probably many more.