0

リアルタイムの市場データ レートを公開するアプリケーションがあります。このアプリはコマンド ラインから呼び出され、ユーザーがパラメーターの後に対応する値を入力するだけでさまざまなパラメーターをその場で変更できるインタラクティブ モードを備えています。

例: 2000

更新レートを 1 秒あたり 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 を入力として使用してプログラムを開始すると、動作するはずです。

fifo を作成します。

mkfifo MyFifo

fifo を入力としてアプリケーションを起動します。

./yourAppName < MyFifo

これで、"MyFifo" に (echo を使用して) 書き込むすべての内容が、yourAppName の stdin に転送されます。

于 2013-03-19T13:47:11.453 に答える