코딩이 새로 생겼으며 C#으로 작성된 오픈 소스 IRC 봇을 편집하고 있습니다. 서버는 매 30 초마다 20 개의 메시지 제한을 설정합니다. 나는 봇이 이미 C# messageQueue를 사용하고 있다고 생각하지만 어떻게 동작하는지 이해하지 못합니다. 나는 누군가가 나를 서버 한계에 맞게 편집하도록 도와 줄 수 있는지 궁금해하고 있었다. 봇은 sendMessage를 사용하여 int 우선 순위의 문자열 메시지를 보냅니다. 미리 시간을내어 주셔서 감사합니다.메시지 큐 시스템 편집에 대한 도움이 필요합니다.
private Timer messageQueue;
messageQueue = new Timer(handleMessageQueue, null, 0, 4000);
private void handleMessageQueue(Object state)
{
String message;
//Console.WriteLine("Entering Message Queue. Time: " + DateTime.Now);
if (highPriority.TryDequeue(out message))
{
print(nick + ": " + message);
sendRaw("PRIVMSG " + channel + " :" + message);
messageQueue.Change(4000, Timeout.Infinite);
}
else if (normalPriority.TryDequeue(out message))
{
print(nick + ": " + message);
sendRaw("PRIVMSG " + channel + " :" + message);
messageQueue.Change(4000, Timeout.Infinite);
}
else if (lowPriority.TryDequeue(out message))
{
print(nick + ": " + message);
sendRaw("PRIVMSG " + channel + " :" + message);
messageQueue.Change(4000, Timeout.Infinite);
}
else messageQueue.Change(4000, Timeout.Infinite);
}
private void sendMessage(String message, int priority)
{
if (priority == 1)
{
highPriority.Enqueue(message);
}
else if (priority == 2)
{
normalPriority.Enqueue(message);
}
else lowPriority.Enqueue(message);
}
편집 : 코드에 messageQueue 시스템이 없다고 들었습니다. 여기에 소스가 있습니다 : http://sourceforge.net/p/twitchmodbot/source/ci/master/tree/ModBot/ 위의 코드는 Irc.cs에 있습니다.
수정할 오픈 소스 프로젝트를 언급하고 링크해야합니다. 여기에있는 코드 블록을 한눈에 보면 큐에서 처리 할 메시지의 수에 대한 할당량이나 제한 사항이 없습니다. 어쩌면 제한은 대기열 구현 자체 또는 다른 곳에서 발생할 수 있습니다. – Bishoy
이것은 전체 메시지 소스이므로 대기열 시스템이없는 것 같습니다. 코드에서 messageQueue를 보았습니다. 나는 그것에 대한 링크가있는 게시물을 편집 할 것이다. – Jan
코드에 'highPriority','normalPriority','lowPriority'라는 대기열이 있습니다. 그러나 당신은 질문하지 않았습니다. – zerkms