|
|
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
у меня проблема состоит в следующем, мне нужно запускать определенный процесс, с наступлением нового дня. Как можно и куда повесить listener, чтобы узнавать о наступлении новой даты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 14:02:44 |
|
||
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
При запуске приложения, измеряете сколько осталось от текущего момента времени до ожидаемого и ставите Timer с задержкой на этот промежуток и нужной периодичностью. Для Swing приложения немного странное требование. А если юзер его закрыл то что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 14:08:39 |
|
||
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, что-что, значит надо запустить, приложение будет крутиться на серваке 24 часа в сутки, не большое приложение для автотического аплоуда файлов определенных и составление ежедневного отчета, осталось добавить такой лисэнер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 14:18:50 |
|
||
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, таймер кстати не подходит, вдруг действительно закроют приложение допустим часов в 12 дня?? а периодичность расчитана на 24 часа, а тут маленькая особенность работы приложения, что оно должно производить действия именно в конце дня, на папки текущего дня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 14:20:34 |
|
||
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
timergalievтаймер кстати не подходит, вдруг действительно закроют приложение допустим часов в 12 дня?? Вот и я вам о том же. Но это же вы зачем-то Swing к вопросу приплели. timergalievа периодичность расчитана на 24 часа, а тут маленькая особенность работы приложения, что оно должно производить действия именно в конце дня, на папки текущего дня Поэтому нужно либо заводить таймер на сервере. С проверкой предыдущих дней во время стартапа, если вдруг сервер не работал. Можно посмотреть Quartz. Можно завести системный таймер в ОС и из него дергать приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 14:30:43 |
|
||
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, нашел другой способ, который также не плохо подходит Код: java 1. 2. 3. 4. 5. 6. 7. 8. Можно настроить вызов метода на каждые 15 минут, через минут после старта приложения. Как я хотел сделать, создать переменную с датой, и внутри фонового сервиса, проверять является ли та дата не равной дате текущего дня, если нет, то значит наступил следующий день и перезаписать на мою переменную новый день. И так будет работать все время. Если я что-то не правильно описал, или у Вас есть более оптимальный способ, подправте меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 16:41:32 |
|
||
|
Swing. Date change listener.
|
|||
|---|---|---|---|
|
#18+
timergaliev И так будет работать все время. А вы оптимист. Любой способ нормальный, если работает. Просто тут есть несколько "ловушек", которые стоит предусмотреть. - Приложение было не запущено в момент, когда данные нужно было обработать. Нужен механизм чтобы "наверстать упущеное" - Предыдущая задача по какой-то причине подвесила поток. Так как у вас пул в 1 поток, новый создан не будет. Нужно либо быть предельно аккуратным, либо предусмотреть механизм разруливания такой ситуации. - "Таймер" вызывает какую-то реакцию в GUI. В большинстве случаев это нужно делать в Event Dispatch Thread через SwingUtilities. В Swing очень мало методов, которые безопасно вызывать из других потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2012, 16:53:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38056322&tid=2130470]: |
0ms |
get settings: |
17ms |
get forum list: |
19ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
40ms |
get topic data: |
21ms |
get forum data: |
5ms |
get page messages: |
92ms |
get tp. blocked users: |
3ms |
| others: | 284ms |
| total: | 493ms |

| 0 / 0 |
