Сравнить 2 значения, старое и новое в Job

153
05 августа 2018, 23:30

C# Консольное приложение. Реализована связка Topshelf+Quartz. Каждые n - секунд выполняется метод, в котором нужно сравнить старое и новое значение из БД MySQl. Если значение изменилось, запоминаем и опять сравниваем. Вроде как ничего такого, но появилась проблема.
Описал в HostFaktory - Сервис

x.Service<ServDB>(s =>
            {
                s.WhenStarted(service => service.OnStart());
                s.WhenStopped(service => service.OnStop());
                s.ConstructUsing(() => new ServDB());
                s.ScheduleQuartzJob(q =>
                    q.WithJob(() =>
                        JobBuilder.Create<CheckDB>().Build())
                        .AddTrigger(() => TriggerBuilder.Create()
                            .WithSimpleSchedule(b => b
                                .WithIntervalInSeconds(10)
                                .RepeatForever())
                            .Build()));
            });    

Далее в самом Джобе

public class CheckDB: IJob
    {
        private int id;
        public int ID //Свойство ввел для анализа
        {
            get
            {
                return id;
            }
            set
            {
                id = value;
            }
        }            
        public void Execute(IJobExecutionContext context)
        {
            MySqlConnection conn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MainDatabaseConnection"].ConnectionString);
            MySqlCommand comm = new MySqlCommand("select max(id) as 'k' from event", conn);
            try
            {
                conn.Open();
                if (ID < Convert.ToInt32(comm.ExecuteScalar()))
                {
                    //что-то делаю                        
                    ID = Convert.ToInt32(comm.ExecuteScalar()); // обновляю ID
                }                                       
                conn.Close();
            }
            catch (Exception) { }
        }
    }    

Но получается так,что ID меняется в If, но при следующем срабатывании таймера, ID=0 и я опять попадаю в IF. Или при выполнении Job'а переменная обнуляется?

READ ALSO
Запуск команды в подчиненном ViewModel

Запуск команды в подчиненном ViewModel

В приложении имеется главное окно и множество userControlНа главном окне расположены все кнопки управления (такие как: добавление данных, редактирование...

157
Текущее время в WPF

Текущее время в WPF

Надо выводить текущее время на экран, чтобы оно менялось в реальном времениЕдинственный способ реализации, который я вижу — реализация через...

185
Вызвать метод базового класса у всех полей в модели с помощью рефлексии

Вызвать метод базового класса у всех полей в модели с помощью рефлексии

У меня есть модель DealModel в которой есть кастомные свойства по типу CustomInt, CustomDate, CustomDecimal ит

174
Оставить только необходимые цвета с Bitmap

Оставить только необходимые цвета с Bitmap

Как в Bitmap оставить только необходимые цвета пикселей, а остальные превратить, например, в чёрный цвет?

154