Ejemplo n.º 1
0
    //////////////////////////////////////////////////////////////////////////
    void Tick(object obj)
    {
        if (m_bRunning)
        {
            return;
        }
        m_bRunning = true;

        int now = CTime.GetTime(DateTime.UtcNow);

        if (m_LastTrackerListLoadTime < now - 12 * 3600 && m_nTrackerIndex >= m_Trackers.Count)
        {
            m_Trackers = ConfigMgr.inst().GetTrackers();
            m_LastTrackerListLoadTime = now;
            m_nTrackerIndex           = 0;

            ClearCommonLogs();
            int t = CTime.GetTime(DateTime.UtcNow);
            if (t - now > 1)
            {
                m_Logger.Push(LogLevel.WARNING, 0, "Common data cleared for " + (t - now) + " sec");
            }
        }

        now = CTime.GetTime(DateTime.UtcNow);
        if (m_nTrackerIndex < m_Trackers.Count)
        {
            CTracker tracker = m_Trackers[m_nTrackerIndex++];
            ClearLogsForTracker(tracker);

            int t = CTime.GetTime(DateTime.UtcNow);
            if (t - now > 1)
            {
                m_Logger.Push(LogLevel.WARNING, 0, "Data for " + tracker.GetDesc() + " cleared for " + (t - now) + " sec");
            }
        }

        m_bRunning = false;
    }