Запуск сэмпла каждые 6 секунд, вне зависимости от того, завершился ли
#1
Отправлено 14 апреля 2012 - 23:17
Мои проекты: http://erudit.me http://erudit.1-1.su
#3
Отправлено 15 апреля 2012 - 16:51
UPD: Похоже это не совсем то. Сразу после запуска потока сэмпл считается успешно выполненным.
Сообщение отредактировал X-NoNAME: 15 апреля 2012 - 17:29
Мои проекты: http://erudit.me http://erudit.1-1.su
#4
Отправлено 15 апреля 2012 - 17:37
#5
Отправлено 15 апреля 2012 - 18:02
Если выложите пример сценария, то, возможно, решить задачу будет проще.
Этот beanshell сэмплер просто добавляю в ThreadGroup, также добавляю таймер.
Исходный.
import test.jWSC; //некий java класс, который делает супер-секретные запросы int timeOut=Integer.parseInt(bsh.args[1]); String quers=bsh.args[0] jWSC wsc = new jWSC(timeOut, quers); //создаем объект wsc.openConnection(); //подключаемся, делаем запрос 1, получаем ответ, делаем запрос 2, делаем isStopped=true while (!wsc.isStopped()){ //проверяем isStopped try { Thread.sleep(200); } catch (InterruptedException ex) { } } if (!wsc.getStatus().equals("200")){ //дальше понятно ResponseCode=wsc.getStatus(); ResponseMessage="FAIL: "+wsc.getMessages(); IsSuccess=false; }else { ResponseCode=wsc.getStatus(); ResponseMessage="PASS: "+wsc.getMessages(); } wsc.close();
По вашему совету, делал так:
import test.jWSC; Thread t1 = new Thread() { public void run() { int timeOut=Integer.parseInt(bsh.args[1]); String quers=bsh.args[0] jWSC wsc = new jWSC(timeOut, quers); wsc.openConnection(); while (!wsc.isStopped()){ try { Thread.sleep(200); } catch (InterruptedException ex) { } } if (!wsc.getStatus().equals("200")){ ResponseCode=wsc.getStatus(); ResponseMessage="FAIL: "+wsc.getMessages(); IsSuccess=false; }else { ResponseCode=wsc.getStatus(); ResponseMessage="PASS: "+wsc.getMessages(); } wsc.close(); }//конец run() }; t1.start();
Мои проекты: http://erudit.me http://erudit.1-1.su
#6
Отправлено 15 апреля 2012 - 18:43
Thread.currentThread().sleep(5000);
#7
Отправлено 15 апреля 2012 - 19:04
не хочу ставить паузы, просто этот семпл может за 3 секунды выполнится, а может и за 20. Мне нужно каждые 6 секунд запускать этот семпл (если он на предыдущей итерации еще не закончил обработку, то нужно запустить этот сэмпл в другом потоке, не дожидаясь его завершения.)Какой thread Вы пытаетесь поставить на паузу:
Thread.currentThread().sleep(5000);
Мои проекты: http://erudit.me http://erudit.1-1.su
#8
Отправлено 16 апреля 2012 - 05:13
не хочу ставить паузы, просто этот семпл может за 3 секунды выполнится, а может и за 20. Мне нужно каждые 6 секунд запускать этот семпл (если он на предыдущей итерации еще не закончил обработку, то нужно запустить этот сэмпл в другом потоке, не дожидаясь его завершения.)
Какой thread Вы пытаетесь поставить на паузу:
Thread.currentThread().sleep(5000);
Используйте Constant Throughput Timer или Throughput Shaping Timer, при этом запустив немного избыточное число тредов в тред-группе. Получите желаемый эффект.
Андрей Похилько
#9
Отправлено 16 апреля 2012 - 10:49
Мои проекты: http://erudit.me http://erudit.1-1.su
#10
Отправлено 20 апреля 2012 - 12:39
Всем спасибо.
Мои проекты: http://erudit.me http://erudit.1-1.su
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных