forum.bitel.ru http://forum.bitel.ru/ |
|
[6.1] Очередь в ActiveMQ http://forum.bitel.ru/viewtopic.php?f=22&t=11201 |
Страница 1 из 1 |
Автор: | Phricker [ 01 дек 2015, 12:31 ] |
Заголовок сообщения: | Re: [6.1] Очередь в ActiveMQ |
Большое кол-во очереди с активацией/деактивацией тарифных опций вызвано скриптом вычисляющим кол-во месяцев в которых был активен договор и активация ему соответствующей опции. Но скрипт судя по логу закончился гораздо раньше Код: GENERATE_TIME: 01.12.15 00:45:01 EXECUTION_STOP_TIME: 01.12.15 00:54:12 PROCESS_TIME: 551319 OUT: Start Process time: 551 s. Тогда как jstack запускался в Код: 2015-12-01 01:17:08 Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.72-b04 mixed mode): Деактивация опций делается следующим кодом Код: /* ДЕАКТИВАЦИИ ОПЦИЙ */ private void deactivate2month( int cid, Connection con, ContractTariffOptionActivateManager ctoa ) throws Exception { String query = " SELECT id FROM contract_tariff_option WHERE cid = " + cid + " AND option_id = " + secondMonthOption + " AND time_to IS NULL"; java.sql.PreparedStatement ps = con.prepareStatement( query ); ResultSet rs = ps.executeQuery(); while ( rs.next() ) { int contractOptionId = rs.getInt(1); try{ ctoa.deactivateOption(User.USER_SERVER, cid, contractOptionId); } catch (Exception e) { error( "Невозможно деактивировать опцию 2 месяца на договоре: " + cid + ". ID опции: " + contractOptionId); } } rs.close(); ps.close(); } Активация соответственно Код: /* АКТИВАЦИЯ ОПЦИЙ */ private void activate2month( int cid, TariffOptionService toa ) throws Exception { try { toa.contractTariffOptionActivate( cid, secondMonthOption, secondModeId, false ); } catch (Exception e) { error( "Невозможно активировать опцию 2 месяца на договоре: " + cid); } } Обращений к базе тоже много не было ![]() ![]() |
Автор: | Phricker [ 01 дек 2015, 12:37 ] |
Заголовок сообщения: | Re: [6.1] Очередь в ActiveMQ |
Как пример абонент у которого не активировался договор по приходу платежа ![]() ![]() Самое интересное что сейчас в ActiveMQ нет ни одного сообщения в очереди. Вот я ему запустил начисление абонплат, по которой ясно что денег у него после платежа стало хватать. ![]() |
Автор: | Phricker [ 01 дек 2015, 12:43 ] |
Заголовок сообщения: | Re: [6.1] Очередь в ActiveMQ |
Этот все еще не активировался ![]() |
Автор: | Phricker [ 01 дек 2015, 12:47 ] |
Заголовок сообщения: | Re: [6.1] Очередь в ActiveMQ |
/admin/queues.jsp не показывает очереди по PaymentEvent. Однако при снятии jstack есть вот такое в логах. Код: "Queue:BG.Event.ru.bitel.bgbilling.kernel.contract.balance.server.event.PaymentEvent" daemon prio=10 tid=0x00007fadd076c000 nid=0x9188 in Object.wait() [0x00007fae732f1000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:503) at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:115) - locked <0x00000000c0e9fbc8> (a java.lang.Object) at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:41) ![]() |
Автор: | Phricker [ 01 дек 2015, 12:48 ] |
Заголовок сообщения: | Re: [6.1] Очередь в ActiveMQ |
Подскажите что делать? Запрос Код: SELECT c.id, c.title, b.summa1+b.summa2-b.summa3-b.summa4 FROM contract AS c LEFT JOIN contract_balance AS b ON b.cid = c.id WHERE b.mm = 12 AND b.yy = 2015 AND b.summa1+b.summa2-b.summa3-b.summa4 > 0 AND c.status <> 0 выдает 129 договоров. Если вам нет необходимости что-то еще снимать - я их активирую все. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |