0

我有一个发布实时市场数据率的应用程序。此应用程序从命令行调用,并具有交互模式,用户可以通过简单地键入参数和相应的值来即时更改各种参数。

例如你的 2000

会将更新速率动态设置为每秒 2000 次更新。

我需要做的是进行几个小时/天的浸泡测试,并且我需要能够在随机时间将更新速率更改为不同的值。我通常使用 Perl 编写所有脚本,因此我需要一种调用脚本的方法(足够简单),然后让脚本能够随机更改任何给定参数(如更新率)。

任何想法或建议将不胜感激。

非常感谢

4

2 回答 2

1

您可以使用打开程序的管道open my $fh, "|-", ...,然后将句柄设置为自动刷新

select $fh;
$| = 1;

现在,您可以直接连接到被测系统的标准输入,如下面的演示所示。

#! /usr/bin/env perl

use strict;
use warnings;
no warnings "exec";

my @system_under_test = ("cat");

open my $fh, "|-", @system_under_test or die "$0: open @system_under_test: $!";

select $fh;
$| = 1;  # autoflush

for (map int rand 2000, 1 .. 10) {
  print $fh "ur $_\n";
  sleep int rand 10;
}

close $fh or warn "$0: close: $!";

对于您的浸泡测试,您当然希望睡眠更多的时间间隔并多次迭代循环。

于 2013-03-19T13:47:44.390 回答
0

您可以使用命令“mkfifo”。这将创建一个命名管道。如果您使用 fifo 作为输入启动程序,它应该可以工作。

创建一个先进先出:

mkfifo MyFifo

使用 fifo 作为输入启动您的应用程序:

./yourAppName < MyFifo

现在所有你写到“MyFifo”的东西(例如使用echo)都会被转发到yourAppName 的stdin。

于 2013-03-19T13:47:11.453 回答