【小ネタ】Alteryxで一定時間Waitする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

今回は、Alteryxで"一定時間待つ"というのを実現する方法を見て行きたいと思います。

一定時間待つとは

一定時間待つとは、例えばワークフローの途中で3秒間後続の処理を実行せずにストップさせておきたいなどといった状況です。 通常のワークフローでは、あまりこのような動作を意識することはありません。

こういったことを行う必要がある場面として、スケジューラのQueueにワークフローが投入されていることを確認するなど、 短時間で処理が終わるようなワークフローの処理中の状態を確認したいといった状況になるかと思います。

処理内容の実装方法

実装するワークフローは簡単なものになっています。

やっていることは、Run Commandツールを使っているくらいなものでしょうか。 ツールの設定は以下のようになっています。

ツールの入力データを一時ファイルとして受け取って、timeoutコマンドを実行したのち一時ファイルをそのまま出力として渡しています。

timeoutコマンドは、引数で指定した時間経過するか何らかの入力があるまで処理を停止するコマンドになっています。 Windowsのコマンドプロンプトにはsleepコマンドが無いようなので、代替として利用しています。 また、「Run Minimized」、「Run Silent」にチェックを入れることで、実行中にコマンドプロンプトのウインドウを表示させないようにしています。

これで、Command Argumentsで指定した秒数分だけここで一時後続の処理実行を待つような仕組みになります。

ちなみにこのワークフローはAnalytic Appとして実装しており、待ち時間を指定できるようにしてあります。 そのための、Actionツールの設定は以下のようになります。

おまけ: Throttleツール

最後におまけとしてThrottleツールを紹介します。

今回紹介した「一定時間待つ」ような機能は、プログラムの世界ではクローラなどでよく利用されます。 これは、短時間に高頻度でデータを取得すると取得先のサーバに高い負荷をかけてしまう可能性があるためです。

そういった場面で活用できそうなツールとしてAlteryxにはこのThrottleツールがあります。 Throttleツールの設定は以下のようになっています。

このツールでは、後続のツールに流すデータを1分間に何レコードまでにするかを設定して絞るものになります。

例えば、上記の設定であれば1分間に10レコードなので、データが100レコードあれば10分かけてゆっくり後続の処理を行えるわけです。

おわりに

今回は、小ネタとして後続の処理を一定時間待つようなワークフローを作成しました。

実際にこういった機能が欲しくなる場面はあまりありませんが、たまに欲しい場面に遭遇することがあるのでその際は使ってみるといいかと思います。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400