BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 22 июн 2025, 21:26

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 28 дек 2009, 16:28 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
http://wiki.bgbilling.ru/index.php/%D0% ... 0%B0%D1%85
Пытаюсь реализовать на основе данного примера, такую логику у себя. Все ничтяк с примером. Вопрос такой:
какие параметры надо указать у данной задачи, чтобы она ставила события в очередь только для выбранных групп? Дело в том что у меня куча карточек (я их не удаляю), а события ставятся в очередь всем договорам. хочу поставить событие 3000 договоров, а ставится всем 500 000. Не оптимально совсем :(

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 дек 2009, 12:45 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Можно сделать чтобы событие таймера вешалось только на определённые группы договоров?
Варианты ответа: Да, таким то образом / нет.
Сложно ответить?

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 янв 2010, 15:50 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
up

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 янв 2010, 16:43 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Код:
public class TimerEventGenerate extends TaskBase
{
  private int flag = 0;
  private String cids;

 ...
 protected void executeTask()
  {
    Connection conSlave = this.setup.getDBSlaveConnectionFromPool();
    try
    {
      String query = "SELECT id FROM contract WHERE (date1 IS NULL OR date1<=?) AND (date2 IS NULL OR date2>=?)";
      if (Utils.notBlankString(this.cids))
      {
        query = query + " AND id IN  (" + this.cids + ")";
      }
      ...
  }
}

Значит она параметр cids ещё имеет, тчиорт побери. Значит не передать параметром группу. Если бы вы были так любезны, что добавили бы туда ещё параметр "groups" то было бы очень нелохо.

Как уже говорил, дело в том, что не удаляю договора обычно несколько лет. И в базе хранится довольно много карточных договоров (порядка нескольких сотен тысяч), которые просто храню. А событие требуемое нужно запустить на одну группу, где порядка 3000 договоров. Событий ненужных в очередь ставится очень много

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 янв 2010, 10:04 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
А что мешает просто убрать со старых договоров скрипт поведения, который ответственен за обработку события таймер?
Нет скрипта, нет обработки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 янв 2010, 17:51 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
На старые договора и не вешается. Но событие ставится в очередь всем договорам, есть у них скрипт, или нет. Результат - логи на 30 метров, в scheduler.log
Цитата:
01-03/17:50:02 INFO [pool-2-thread-3] EventProcessor - Add event to queue Event bitel.billing.server.script.bean.event.TimerEvent cid: 216; module: 0; type: 3
01-03/17:50:02 INFO [pool-2-thread-3] EventProcessor - Add event to queue Event bitel.billing.server.script.bean.event.TimerEvent cid: 217; module: 0; type: 3
01-03/17:50:02 INFO [pool-2-thread-3] EventProcessor - Add event to queue Event bitel.billing.server.script.bean.event.TimerEvent cid: 218; module: 0; type: 3


и в server.script.log ещё чуть больше
Цитата:
8:02:17 INFO [Thread-7] EventProcessor - Found event id=534289
01-03/18:02:17 INFO [Thread-7] EventProcessor - Process event cid:769498; event:Event bitel.billing.server.script.bean.event.TimerEvent cid: 769498; module: 0; type: 3
01-03/18:02:17 INFO [Thread-7] ServerEventProcessor - Process event cid:769498; event:Event bitel.billing.server.script.bean.event.TimerEvent cid: 769498; module: 0; type: 3
01-03/18:02:17 INFO [Thread-7] ServerEventProcessor - Skipping in modules process..
01-03/18:02:17 INFO [Thread-7] EventProcessor - Found event id=534290
01-03/18:02:17 INFO [Thread-7] EventProcessor - Process event cid:769499; event:Event bitel.billing.server.script.bean.event.TimerEvent cid: 769499; module: 0; type: 3
01-03/18:02:17 INFO [Thread-7] ServerEventProcessor - Process event cid:769499; event:Event bitel.billing.server.script.bean.event.TimerEvent cid: 769499; module: 0; type: 3
01-03/18:02:17 INFO [Thread-7] ServerEventProcessor - Skipping in modules process..
01-03/1


Для оптимизации просто.

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 янв 2010, 13:18 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Akhmat писал(а):
Можно сделать чтобы событие таймера вешалось только на определённые группы договоров?
Варианты ответа: Да, таким то образом / нет.
Сложно ответить?

такой возможности нет . Добавил в TODO


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 янв 2010, 13:39 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
По возможности откажитесь от таймера в пользу глобальных скриптов, будет оптимальнее гораздо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 янв 2010, 01:51 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Спасибо

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.038s | 34 Queries | GZIP : On ]