nodejs에서 시간 지정 응용 프로그램을 만들어야하는데, 사용자는 매일, 매주 및 매월 설정할 수 있습니다. 처음으로 문질러서는 다음과 같이 만드는 것이 었습니다 :nodejs 타이머 성능
socket.on("connect")
{
client.on("authenticate")
{
var frequency = GetTimersForUser(client);
var timersInMilliseconds = ConvertFrequencyToMS(frequency);
var nextInMS = GetLower(timersInMilliseconds);
setTimeout("timedCount()",nextInMS);
}
}
timedCount()
{
cancelTimer;
client.emit("poke");
var frequency = GetTimersForUsers(client);
...
setTimeout("timedCount()",nextInMS);
}
을하지만, 이것은 (클라이언트가 연결되어있는 경우) 타이머 만 접속 후 생성되기 때문에 늘 실패 타이머에 대해 나에게 경고를, 그래서 내가 비록 전에 타이머를 만드는 방법에 대한 연결.
userslist = getIndividualUsersNextTimerAsDate();
setTimout("timedCount()",1000);
timedCount()
{
foreach(user in userslist)
{
if(user.time <= now())
{
if(user.socket)
{
user.socket.emit("poke");
}
user.time = resetTimeForNextTimer(user);
}
}
}
socket.on("connect")
{
...
userslist[x].socket = client;
}
또는 여러 개의 타이머마다 "시간":
var userslist = GetUsersTimers();
foreach(user in userslist)
{
user.Counter = setTimeout("runTime()",client.timer);
}
runTime(client)
{
client.emit("poke");
client.Counter.cancel();
client.timer = resetToNextTimer();
client.Counter = setTimeout("runTime()",client.timer);
}
또는 내가 누락 더 좋은 방법이 그래서 더 빨리 초마다 1 개 타이머를 만드는 것입니다?