Divya B Nair Ответов: 2

Можно ли хранить данные в консольном приложении, запущенном в виде запланированных задач?


Привет,

Я реализовал консольное приложение, которое отправляет почту на основе данных, возвращенных из веб-службы. Я настроил его как планировщик задач windows, который запускается каждые 5 минут.

Здесь я получаю список статуса сотрудника с помощью сервиса. Статус сотрудника может быть активным, неактивным и несколькими другими тоже. Я должен отправлять уведомление по электронной почте на идентификатор электронной почты сотрудника всякий раз, когда происходит следующее изменение статуса: "активный-> неактивный" и "неактивный->Активный". Короче говоря, это требует, чтобы я сохранил предыдущий статус.

Есть ли какой-нибудь способ сохранить предыдущие данные?. Добрый совет.

Спасибо

Что я уже пробовал:

Я попробовал использовать статическую переменную. Но я считаю, что поскольку приложение запускается каждые 5 минут, оно запускается как новое приложение

2 Ответов

Рейтинг:
2

Richard MacCutchan

Если задача выполняется каждый раз как новая, то никакие переменные памяти, использованные в предыдущем запуске, не существуют. Вам нужно использовать постоянное хранилище, то есть дисковый файл. В качестве альтернативы вы можете иметь один экземпляр приложения, который использует таймер для запуска каждые пять минут. Таким образом, вы могли бы сохранить всю информацию в памяти.


Divya B Nair

В этом случае мы можем настроить задачу в планировщике на запуск только один раз, который затем внутренне вызывает таймер с 5 минтами каждый. Так ведь?

Richard MacCutchan

Да, совершенно верно. Я не знаю, как реализовать таймер Windows в консольном приложении, но это должно быть возможно.

Рейтинг:
2

OriginalGriff

Я согласен с Ричардом: если это новое приложение, запускаемое каждые несколько минут, то вам понадобится постоянное хранилище вне приложения, но я бы предположил, что база данных может быть лучше, чем дисковый файл, поскольку они лучше организованы и требуют меньше "размышлений", когда речь заходит о добавлении, удалении или изменении данных.
Вы можете посмотреть здесь: Пошаговое руководство: сохранение данных в базе данных (одна таблица)[^] это не так уж сложно, когда вы получаете свою голову вокруг этого, и это вещи, которые стоит знать!


Divya B Nair

Я привык работать с базой данных, но мы не предпочитаем использовать БД только для хранения этой информации. Это был бы наш последний вариант :)