可能重复:
ASP.NET的Comet实现?
我正在考虑建立一个实时聊天网站,但在开始之前遇到了一些问题.
首先,我们希望能够在一个对话中同时拥有多个人,同时进行多个对话.
经过一些研究,很多人建议进行长时间的民意测验.可扩展性听起来像一个问题,似乎每个用户将在服务器上等待连接,并且每个连接使用自己的线程.当有多个用户时,这可能会导致性能问题.大多数时候,当我读到这个时,他们指的是Apache作为服务器.IIS(6或7)会遇到同样的问题吗?在遇到问题之前,IIS可以处理多少用户?
在IIS上使用ajax进行长轮询是创建实时聊天网站的一个很好的选择,还是有一个不同的服务器可以更好地处理连接?还有其他我们应该研究的东西吗?
我正在尝试创建一个Timer/TimerTask,它将在每个月的同一天运行.我无法安排重复计时器,因为一个月不会总是相同的时间长度.
所以,这是我的解决方案:
public class MyTask extends TimerTask {
public void run(){
//do process file stuff
if(scheduledExecutionTime() != 0){
TimerHelper.restartMyTimer();
}
}
}
public class TimerHelper {
public static HashTable timersTable = new HashTable();
public static void restartMyTimer(){
Calendar runDate = Calendar.getInstance();
runDate.set(Calendar.DAY_OF_MONTH, 1);
runDate.set(Calendar.HOUR_OF_DAY, 4);
runDate.set(Calendar.MINUTE, 0);
runDate.add(Calendar.MONTH, 1);//set to next month
MyTask myTask = new MyTask();
Timer myTimer = new Timer();
myTimer.schedule(myTask, runDate.getTime());
timersTable = new HashTable();//keeping a reference to the timer so we
timersTable.put("1", myTimer);//have the option to …Run Code Online (Sandbox Code Playgroud)