public static void QueryQueuedQuestions() { IList <int> questionIds; using (var con = ReadWriteDataContext.PlainConnection()) { questionIds = con.Query <int>(@" SELECT DISTINCT TOP 100 QuestionID FROM QueuedQuestionQueries LEFT JOIN Questions on QueuedQuestionQueries.QuestionId < Questions.Id WHERE Questions.Id IS NULL OR Questions.LastUpdated < @fiveMinAgo ", new { fiveMinAgo = DateTime.UtcNow.AddMinutes(-5) }) .Distinct().ToList(); if (questionIds.Count < 100) { return; } if (!StackExchangeAPI.CanExecute()) { return; } con.Execute($@" DELETE FROM QueuedQuestionQueries WHERE QuestionID IN ({string.Join(",", questionIds)}) "); } var questionModels = StackExchangeAPI.GetQuestions(questionIds); foreach (var questionModel in questionModels) { UpsertQuestionInformation(questionModel); } }
static void Main() { StackExchangeAPI.GetQuestionVotes(36555152); //new Thread(() => //{ // Chat.JoinAndWatchRoom(68414); // while (true) Thread.Sleep(1000); //}).Start(); }