В продолжении этой темы появилась одна проблема.
Договор создаётся по событию WiFiActivateEvent. Абонент заполняет ФИО и Телефон и создаётся договор с этими параметрами, в частности логином в InetServ является номер телефона.
Проблема в том, что иногда события с одинаковыми параметрами происходят почти одновременно и выполняются параллельно. Я не знаю из-за чего это происходит, возможно
абонент на странице регистрации два раза успевает кнопку нажать, а может и не в этом дело. Но получается, что код проверки существования договора с такими же параметрами
выполняется одновременно и в итоге создаются два договора с одинаковыми параметрами. Что придумать можно, чтобы этого избежать?
Вот недавний пример:
Код:
08-17/16:33:36 INFO [http-bio-0.0.0.0-8080-exec-3] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.wifi.common.event.WiFiActivateEvent
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.ResourceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.wsResoure ru.bitel.oss.systems.inventory.resource.server.R
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.deviceInterfaceService ru.bitel.oss.systems.invento
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] myActivation - service with login 9993352354 not found
08-17/16:33:36 INFO [dyn-clss-evnt-lstnr-p-4-t-3] CommonKernelEventProcessor - Process event cid:0; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 0; scid: -1; userId: 0; timestamp: 1502944416875
08-17/16:33:36 INFO [http-bio-0.0.0.0-8080-exec-2] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.wifi.common.event.WiFiActivateEvent
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.devicePortService ru.bitel.oss.systems.inventory.
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.bgbilling.modules.inet.api.common.service.InetServService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.inetServService ru.bitel.bgbilling.modules.inet.api.
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.ResourceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.wsResoure ru.bitel.oss.systems.inventory.resource.server.R
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.deviceInterfaceService ru.bitel.oss.systems.invento
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] myActivation - service with login 9993352354 not found
08-17/16:33:36 INFO [dyn-clss-evnt-lstnr-p-4-t-4] CommonKernelEventProcessor - Process event cid:0; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 0; scid: -1; userId: 0; timestamp: 1502944416941
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.devicePortService ru.bitel.oss.systems.inventory.
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.bgbilling.modules.inet.api.common.service.InetServService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.inetServService ru.bitel.bgbilling.modules.inet.api.
08-17/16:33:36 INFO [dyn-clss-evnt-lstnr-p-4-t-4] CommonKernelEventProcessor - Process event cid:293; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 293; scid: -1; userId: 0; timestamp: 1502944416989
08-17/16:33:37 INFO [dyn-clss-evnt-lstnr-p-4-t-3] CommonKernelEventProcessor - Process event cid:292; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 292; scid: -1; userId: 0; timestamp: 1502944417063
08-17/16:33:38 INFO [http-bio-0.0.0.0-8080-exec-3] ScriptEventListener - Process time => 1503
08-17/16:33:38 INFO [http-bio-0.0.0.0-8080-exec-3] ScriptEventListener - WiFi Activation
{phone=9993352354, fio=Иванов Иван Ивнович}
fio=Иванов Иван Ивнович
phone=9993352354
договор не найден, создаем новый
sms: логин: 9993352354, пароль: BrnGVX
result 0 = 63998
result 1 = 1
result 2 = 1.7
result 3 = 94849.104
id = 63998
sms count = 1
cost = 1.7
balance = 94849.104
08-17/16:33:38 INFO [http-bio-0.0.0.0-8080-exec-2] ScriptEventListener - Process time => 1670
08-17/16:33:38 INFO [http-bio-0.0.0.0-8080-exec-2] ScriptEventListener - WiFi Activation
{phone=9993352354, fio=Иванов Иван Ивнович}
fio=Иванов Иван Ивнович
phone=9993352354
договор не найден, создаем новый
sms: логин: 9993352354, пароль: 7G3pCT
result 0 = 63999
result 1 = 1
result 2 = 1.7
result 3 = 94847.404
id = 63999
sms count = 1
cost = 1.7
balance = 94847.404
Вот в логах сообщение
Код:
myActivation - service with login 9993352354 not found
это проверка в самом начале события