BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 20:34

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Асинхронный запуск
СообщениеДобавлено: 09 ноя 2015, 00:55 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
При запуске класса привязанного к процессу столкнулся с таймаутом в 1000мс.
Решил обернуть кусок кода, который требует много времени (отсылка письма через метод из MailMsg) в отдельный класс реализующий Runnable интерфейс и запустить его отдельным Thread.
Правильно ли или в CRM есть более верный путь?

Код:
package ru.bgcrm.dyn.my.utils.message.mail;

import ru.bgcrm.util.MailMsg;
import ru.bgcrm.util.Setup;

public class MailSender implements Runnable {
   
   private String mailTo;
   private String mailSubj;
   private String mailContent;
   
   public MailSender(String mailTo, String mailSubj, String mailContent) {
      this.mailTo = mailTo;
      this.mailSubj = mailSubj;
      this.mailContent = mailContent;
   }
   
   @Override
   public void run() {
      new MailMsg( Setup.getSetup() ).sendMessage( this.mailTo, this.mailSubj, this.mailContent );
   }

}


Код:
...
Thread t = new Thread(new MailSender("_", "_", "_"));
t.start();
...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Асинхронный запуск
СообщениеДобавлено: 09 ноя 2015, 13:11 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вынос длительной операции в поток - решение правильное.
Ну единственное можно посоветовать ещё - создать статический пул потоков ThreadPoolExecuter с ограниченном числом тредов. И уже передавать в него задания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Асинхронный запуск
СообщениеДобавлено: 20 ноя 2015, 16:35 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
Администратор писал(а):
Вынос длительной операции в поток - решение правильное.
Ну единственное можно посоветовать ещё - создать статический пул потоков ThreadPoolExecuter с ограниченном числом тредов. И уже передавать в него задания.

а в самом CRM нет такого пула который можно использовать? чтобы не городить лишних?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Асинхронный запуск
СообщениеДобавлено: 21 ноя 2015, 03:10 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Нет. Зачем? Если он в Java уже есть и очень просто создаётся..
Вам подсказать с реализацией?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Асинхронный запуск
СообщениеДобавлено: 21 ноя 2015, 12:34 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
нет, спасибо, уже сделал :) просто думал уже готовое есть


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

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


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

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


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

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