Здравствуйте
Используем BGbilling 6.0
Добавили код рассылки писем по событию прихода платежа.
Для этого повесил в "Функции скриптов поведения" Класс Java на событие "Приход платежа"
Он содержит примерно следующий код:
Код:
public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 )
throws Exception
{
// Оповещение клиента о пополнении
if(event1 instanceof PaymentEvent)
{
PaymentEvent p_event = (PaymentEvent)event1;
Payment p = p_event.getPayment();
...
// Посылаем письмо с использованием ru.bitel.bgbilling.plugins.dispatch.server.sender.EmailSender
Сontact c = new Contact();
c.setContractId(contr.getId());
c.setContactTypeId(1);
EmailSender m_sender = new EmailSender();
ArrayList<String> managerMails; // Содержит список почт
for(String mail : managerMails)
{
c.setValue(mail);
m_sender.send(c,"Пополнение баланса","Тело", new ArrayList<javax.activation.DataSource>());
}
}
}
События платежа так же генерируется в другом java коде:
Код:
// Занесение платежа в систему
EventProcessor.getInstance().publishAfterCommit( new PaymentEvent( contract_id, payment ) );
Код работает нормально до поры до времени.
Иногда по какой то причине(Которую я пытаюсь найти) приходят очень много оповещений об одном и том же платеже.
Например: При 1 платеже должно быть одно оповещение, а приходят больше одного, при этом кол-во оповещений разное.
Ошибок в server.error.log и в scheduler.error.log во время прихода оповещений нет.
Точнее логи содержали Exception-ы но они относились к другому коду.(Могут ли исключения которые выкидываются в другой части биллинга как то влиять на отработку события отправки письма?)
Может кто может подсказать в какую сторону смотреть?