我有一个C#程序,每毫秒发送一个HttpWebRequest
来获取一些货币报价。但是,令我惊讶的是,昨天它冻结了我的服务器并使CPU过高,就像DDOS被发送到我的服务器一样。
它还调用Java Process来更新一些函数...... 这就是我目前杀死Java进程的方式:
Process[] processesByName = Process.GetProcessesByName("java");
for (int i = 0; i < (int)processesByName.Length; i++)
{
processesByName[i].Kill();
}
如何最好的方法来杀死像Java进程一样的所有子进程并且每小时都杀掉所有线程?
...谢谢
答案 0 :(得分:3)
尝试并改进您的设计。一种方法可能是:
客户端应订阅服务器并只是监听从服务器返回的值。此外,客户端应该定期向服务器发送一个简单的确认包,让它知道它还活着。
让服务器保留已订阅特定货币信息的客户地址列表。然后,它可以继续向所有已订阅它的客户发送有关该货币的最新信息。它可以取消那些没有在很长时间内发送确认的客户的订阅,假设他们不再活着。
您不会使服务器充满请求。相反,你告诉它开始或停止发送货币信息。这减少了消息传递。并希望能解决你的其他问题。