forum.bitel.ru
http://forum.bitel.ru/

Событие деактивации тарифной опции
http://forum.bitel.ru/viewtopic.php?f=19&t=8796
Страница 1 из 1

Автор:  Dog [ 26 дек 2013, 03:18 ]
Заголовок сообщения:  Событие деактивации тарифной опции

Подскажите, что я не так делаю.
написан собственный класс дин кода:
Код:
package scripts.kernel.bonusOnPaymentHelper;
...

public class activationBonusChecker extends EventScriptBase<TariffOptionDeactivatedEvent> {
@Override
   public void onEvent(TariffOptionDeactivatedEvent event, Setup setup,   ConnectionSet connectionSet)
   throws Exception {
...
         }
}

создан скрипт поведения, к нему добавлен этот класс с событием "Деактивированна тарифная опция"
добавляю опцию на договор и тут же срабатывает этот скрипт поведения, не дожидаясь, когда будет деактивирована опция.
в лог вываливается:
Код:
EXCEPTIONS:
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
   at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
   at java.util.concurrent.FutureTask.get(FutureTask.java:91)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:267)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScript(DynamicScriptEventListener.java:149)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.notify(DynamicScriptEventListener.java:117)
   at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:344)
   at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:1)
   at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112)
   at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:200)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$0(DynamicScriptEventListener.java:1)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:254)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   ... 4 more
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
   at scripts.kernel.bonusOnPaymentHelper.activationBonusChecker.onEvent(activationBonusChecker.java:28)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
   ... 8 more

почему собственно говоря ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent? если я указал событие другое. ну и когда опция действительно деактивируется (т.е. истекает время её действия) ничего не происходит. что я не так понял?

Автор:  Dog [ 26 дек 2013, 03:52 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

перезагрузил сервер,даталоадер,шедулер.
добавляю опцию. вообще ничего не происходит. ни при активации, ни при деактивации опции. решил поменять событие на "Ативирована/рактивирована тарифная опция" (раньше, именно её ставил, когда начинал тестировать класс), в итоге в лог падает:
Код:
12-26/01:47:09 DEBUG [event-proc-p-2-t-1] EventProcessor - Add ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@d to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent

меняю обратно на "Деактивирована тарифная опция":
Код:
12-26/01:47:24 DEBUG [event-proc-p-2-t-1] EventProcessor - Updated listener ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@d to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

активирую опцию:
Код:
12-26/01:47:50  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/01:47:50 ERROR [event-proc-p-2-t-1] ScriptEventListener - Eval error: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/01:47:50 ERROR [event-proc-p-2-t-1] ScriptEventListener - java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

что за беда?
Код:
 Сервер: вер. 6.0 сборка 1620 от 06.11.2013 18:01:46

Автор:  Dog [ 26 дек 2013, 04:13 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

ну и собственно, когда меняю в коде TariffOptionDeactivatedEvent на TariffOptionActivatedEvent то он успешно запускается и отрабатывает на события "Активирована/реактивирована тарифная опция" и событие "Деактивирована тарифная опция"

Автор:  skn [ 26 дек 2013, 15:51 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

тема называется " деактивации тарифной опции"

а класс называется "activationBonusChecker" с событием "TariffOptionDeactivatedEvent"

при вызове класса приходит событие "TariffOptionActivatedEvent"....

так вы что хотите то в итоге АКТИВИРОВАТЬ или ДЕАКТИВИРОВАТЬ?

Автор:  Dog [ 26 дек 2013, 17:15 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

я хочу чтобы при ДЕАКТИВАЦИИ (по событию TariffOptionDeactivatedEvent) запускалось
Код:
package scripts.kernel.bonusOnPaymentHelper;
...

public class activationBonusChecker extends EventScriptBase<TariffOptionDeactivatedEvent> {
@Override
   public void onEvent(TariffOptionDeactivatedEvent event, Setup setup,   ConnectionSet connectionSet)
   throws Exception {
...
         }
}

сейчас это выглядит вот так:
Вложение:
1.jpg
1.jpg [ 16.84 КБ | Просмотров: 9044 ]

то как называется класс играет принципиальную роль на то как оно будет работать?

Автор:  skn [ 26 дек 2013, 17:35 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

вы один и тот же скрипт привязываете на два события?

Автор:  Dog [ 26 дек 2013, 17:41 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

нет, я привязывают один скрипт на одно событие. просто пробовал и на Активацию/Реактивацию (меняя в коде соответственно на TariffOptionActivatedEvent), и на Деактивацию (с TariffOptionDeactivatedEvent).
c Активацией/Реактивацией код срабатывает, с Деактивацией код не работает, потому что оно запускается не по событию деактивации, а по событию Активации/Реактивации.

Автор:  skn [ 26 дек 2013, 19:20 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

не надо пробовать, там куча кешей...
попробуйте один скрипт для одного события и второй скрип для другого

Автор:  Dog [ 26 дек 2013, 22:48 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

ок. удаляем этот скрипт поведения. останавилваем activemq,server,dataloader,scheduler. стартуем их.
создаем новый скрипт поведения с событием "Деактивация опции". Активируем опцию на договоре. Ждём деактивации. в логах выполнения пусто. в логах сервера такого события не было.
лог сервера с момента рестарта:
Код:
[root@billing server]# cat server.script.log | grep "TariffOption"
12-26/20:32:25 DEBUG [main] EventProcessor - Add Function [id:5; title:Синхронизация TV - 1] to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:32:25 DEBUG [main] EventProcessor - Updated listener Function [id:5; title:Синхронизация TV - 1] to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:32:26 DEBUG [main] ScriptEventListener - Add empty listener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:32:26 DEBUG [main] EventProcessor - Add EmptyScriptEventListener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:32:26 DEBUG [main] ScriptEventListener - Add empty listener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:32:26 DEBUG [main] EventProcessor - Add EmptyScriptEventListener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:33:28 DEBUG [event-proc-p-2-t-1] EventProcessor - Add ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@12 to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

создаем еще один скрипт поведения с событием "Активация/Реактивация опции" с тем же самым дин. кодом. Активируем опцию.
Код:
12-26/20:38:09 DEBUG [event-proc-p-2-t-1] EventProcessor - Add ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@13 to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:38:19  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:38:19 ERROR [event-proc-p-2-t-1] ScriptEventListener - Eval error: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:38:19 ERROR [event-proc-p-2-t-1] ScriptEventListener - java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

вываливается екзепшн о том, что нельзя запихнуть TariffOptionActivatedEvent в TariffOptionDeactivatedEvent, что в принципе понятно. в логах выполнения, в самом договоре появился только тот что нацелен на активацию опции. Ждём деактивации опции - и тишина.
на лицо то, что события на деактивацию тарифной опции вообще не происходит, ну либо не срабатывает на него скрипт.

Автор:  Dog [ 26 дек 2013, 22:51 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

меняю в скрипте TariffOptionDeactivatedEvent на TariffOptionActivatedEvent, перезапускаю всё. скрипты поведения остаются прошлыми. в итоге, при активации опции, тот что на Активацию/Реактивацию отрабатывает тихо и мирно, а тот что на Деактивацию вообще не отрабатывает.
Что еще сделать?

Автор:  skn [ 26 дек 2013, 23:28 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

Dog писал(а):
меняю в скрипте TariffOptionDeactivatedEvent на TariffOptionActivatedEvent, перезапускаю всё. скрипты поведения остаются прошлыми. в итоге, при активации опции, тот что на Активацию/Реактивацию отрабатывает тихо и мирно, а тот что на Деактивацию вообще не отрабатывает.
Что еще сделать?


а что вы понимаете под "Деактивация" опции?

Автор:  Dog [ 27 дек 2013, 00:07 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

хм, ну когда у нее заканчивается период действия, и она оправляется в Историю? или событие "Деактивация..." имеется ввиду её деактивация из ЛК? тогда какое событие совпадает с тем, что я подразумеваю по Деактивацией?

Автор:  skn [ 27 дек 2013, 00:29 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

по моему его нету...

Автор:  Dog [ 27 дек 2013, 01:42 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

и как быть? нужно увидеть когда закончилась одна опция, чтобы запустить следующую.

Автор:  Cromeshnic [ 27 дек 2013, 07:11 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

Модуль "Подписки"?

Автор:  Dog [ 27 дек 2013, 12:40 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

не, обойдусь пока что костылями.

Автор:  Dog [ 27 дек 2013, 13:38 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

а можно как то добавлять опцию на будущее число? если например через sql в базу её пихнуть, она потом активируется?

Автор:  Dog [ 27 дек 2013, 17:28 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

а еще судя по доке в классе bitel.billing.server.contract.bean.Payment есть методы getSum() и getSumma(). getSumma() - устарел и предполагается что нужно брать getSum() которого там нет:
Код:
cannot find symbol
symbol  : method getSum()
location: class bitel.billing.server.contract.bean.Payment

Автор:  skn [ 27 дек 2013, 18:51 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

Dog писал(а):
а еще судя по доке в классе bitel.billing.server.contract.bean.Payment есть методы getSum() и getSumma(). getSumma() - устарел и предполагается что нужно брать getSum() которого там нет:
Код:
cannot find symbol
symbol  : method getSum()
location: class bitel.billing.server.contract.bean.Payment


какая версия?

Автор:  Dog [ 27 дек 2013, 19:16 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

6.0

Автор:  skn [ 27 дек 2013, 19:40 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

в 6 версии в данном классе есть оба метода, может у вас билд старый?

Автор:  Dog [ 27 дек 2013, 19:42 ]
Заголовок сообщения:  Re: Событие деактивации тарифной опции

может быть
Код:
  Сервер: вер. 6.0 сборка 1620 от 06.11.2013 18:01:46
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_33

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/