我有一个发布实时市场数据率的应用程序。此应用程序从命令行调用,并具有交互模式,用户可以通过简单地键入参数和相应的值来即时更改各种参数。
例如你的 2000
会将更新速率动态设置为每秒 2000 次更新。
我需要做的是进行几个小时/天的浸泡测试,并且我需要能够在随机时间将更新速率更改为不同的值。我通常使用 Perl 编写所有脚本,因此我需要一种调用脚本的方法(足够简单),然后让脚本能够随机更改任何给定参数(如更新率)。
任何想法或建议将不胜感激。
非常感谢
我有一个发布实时市场数据率的应用程序。此应用程序从命令行调用,并具有交互模式,用户可以通过简单地键入参数和相应的值来即时更改各种参数。
例如你的 2000
会将更新速率动态设置为每秒 2000 次更新。
我需要做的是进行几个小时/天的浸泡测试,并且我需要能够在随机时间将更新速率更改为不同的值。我通常使用 Perl 编写所有脚本,因此我需要一种调用脚本的方法(足够简单),然后让脚本能够随机更改任何给定参数(如更新率)。
任何想法或建议将不胜感激。
非常感谢
您可以使用打开程序的管道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: $!";
对于您的浸泡测试,您当然希望睡眠更多的时间间隔并多次迭代循环。
您可以使用命令“mkfifo”。这将创建一个命名管道。如果您使用 fifo 作为输入启动程序,它应该可以工作。
创建一个先进先出:
mkfifo MyFifo
使用 fifo 作为输入启动您的应用程序:
./yourAppName < MyFifo
现在所有你写到“MyFifo”的东西(例如使用echo)都会被转发到yourAppName 的stdin。