forum.bitel.ru http://forum.bitel.ru/ |
|
Задача планировщика "Генератор событий таймера" http://forum.bitel.ru/viewtopic.php?f=22&t=3378 |
Страница 1 из 1 |
Автор: | Akhmat [ 28 дек 2009, 16:28 ] |
Заголовок сообщения: | Задача планировщика "Генератор событий таймера" |
http://wiki.bgbilling.ru/index.php/%D0% ... 0%B0%D1%85 Пытаюсь реализовать на основе данного примера, такую логику у себя. Все ничтяк с примером. Вопрос такой: какие параметры надо указать у данной задачи, чтобы она ставила события в очередь только для выбранных групп? Дело в том что у меня куча карточек (я их не удаляю), а события ставятся в очередь всем договорам. хочу поставить событие 3000 договоров, а ставится всем 500 000. Не оптимально совсем ![]() |
Автор: | Akhmat [ 29 дек 2009, 12:45 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
Можно сделать чтобы событие таймера вешалось только на определённые группы договоров? Варианты ответа: Да, таким то образом / нет. Сложно ответить? |
Автор: | Akhmat [ 03 янв 2010, 15:50 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
up |
Автор: | Akhmat [ 03 янв 2010, 16:43 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
Код: 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 договоров. Событий ненужных в очередь ставится очень много |
Автор: | Феанор [ 04 янв 2010, 10:04 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
А что мешает просто убрать со старых договоров скрипт поведения, который ответственен за обработку события таймер? Нет скрипта, нет обработки. |
Автор: | Akhmat [ 04 янв 2010, 17:51 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
На старые договора и не вешается. Но событие ставится в очередь всем договорам, есть у них скрипт, или нет. Результат - логи на 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 Для оптимизации просто. |
Автор: | stark [ 11 янв 2010, 13:18 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
Akhmat писал(а): Можно сделать чтобы событие таймера вешалось только на определённые группы договоров? Варианты ответа: Да, таким то образом / нет. Сложно ответить? такой возможности нет . Добавил в TODO |
Автор: | Администратор [ 11 янв 2010, 13:39 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
По возможности откажитесь от таймера в пользу глобальных скриптов, будет оптимальнее гораздо. |
Автор: | Akhmat [ 12 янв 2010, 01:51 ] |
Заголовок сообщения: | Re: Задача планировщика "Генератор событий таймера" |
Спасибо |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |