Запуск сэмпла каждые 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 анонимных

