powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing. Date change listener.
7 сообщений из 7, страница 1 из 1
Swing. Date change listener.
    #38056309
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня проблема состоит в следующем, мне нужно запускать определенный процесс, с наступлением нового дня. Как можно и куда повесить listener, чтобы узнавать о наступлении новой даты?
...
Рейтинг: 0 / 0
Swing. Date change listener.
    #38056322
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При запуске приложения, измеряете сколько осталось от текущего момента времени до ожидаемого и ставите Timer с задержкой на этот промежуток и нужной периодичностью.
Для Swing приложения немного странное требование. А если юзер его закрыл то что?
...
Рейтинг: 0 / 0
Swing. Date change listener.
    #38056337
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

что-что, значит надо запустить, приложение будет крутиться на серваке 24 часа в сутки, не большое приложение для автотического аплоуда файлов определенных и составление ежедневного отчета, осталось добавить такой лисэнер
...
Рейтинг: 0 / 0
Swing. Date change listener.
    #38056343
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

таймер кстати не подходит, вдруг действительно закроют приложение допустим часов в 12 дня?? а периодичность расчитана на 24 часа, а тут маленькая особенность работы приложения, что оно должно производить действия именно в конце дня, на папки текущего дня
...
Рейтинг: 0 / 0
Swing. Date change listener.
    #38056379
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timergalievтаймер кстати не подходит, вдруг действительно закроют приложение допустим часов в 12 дня??

Вот и я вам о том же. Но это же вы зачем-то Swing к вопросу приплели.

timergalievа периодичность расчитана на 24 часа, а тут маленькая особенность работы приложения, что оно должно производить действия именно в конце дня, на папки текущего дня
Поэтому нужно либо заводить таймер на сервере. С проверкой предыдущих дней во время стартапа, если вдруг сервер не работал.
Можно посмотреть Quartz. Можно завести системный таймер в ОС и из него дергать приложение.
...
Рейтинг: 0 / 0
Swing. Date change listener.
    #38056647
timergaliev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

нашел другой способ, который также не плохо подходит

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
        service.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                JOptionPane.showMessageDialog(new JButton(), "This message appear every 15 minutes after 1 " +
                        "minute as you just run this application ");
            }
        }, 1,15, TimeUnit.MINUTES);



Можно настроить вызов метода на каждые 15 минут, через минут после старта приложения.
Как я хотел сделать, создать переменную с датой, и внутри фонового сервиса, проверять является ли та дата не равной дате текущего дня, если нет, то значит наступил следующий день и перезаписать на мою переменную новый день. И так будет работать все время. Если я что-то не правильно описал, или у Вас есть более оптимальный способ, подправте меня.
...
Рейтинг: 0 / 0
Swing. Date change listener.
    #38056681
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timergaliev И так будет работать все время.
А вы оптимист. Любой способ нормальный, если работает. Просто тут есть несколько "ловушек", которые стоит предусмотреть.
- Приложение было не запущено в момент, когда данные нужно было обработать. Нужен механизм чтобы "наверстать упущеное"
- Предыдущая задача по какой-то причине подвесила поток. Так как у вас пул в 1 поток, новый создан не будет. Нужно либо быть предельно аккуратным, либо предусмотреть механизм разруливания такой ситуации.
- "Таймер" вызывает какую-то реакцию в GUI. В большинстве случаев это нужно делать в Event Dispatch Thread через SwingUtilities. В Swing очень мало методов, которые безопасно вызывать из других потоков.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing. Date change listener.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]