保持Perl脚本运行

罗斯·达根

我有一个Perl脚本,可使用AnyEvent :: MQTT订阅消息队列。

我一分钟想做的就是在收到消息时将其打印出来。我对perl完全陌生,因此我正在使用它附带的演示代码,其中包括一些在STDIN上将任何内容作为消息发布的功能-效果很好,并且我可以看到收到的所有消息。

该代码如下所示

#!/usr/bin/perl
use strict;
use warnings;

use AnyEvent::MQTT;
my $mqtt = AnyEvent::MQTT->new;
my $cv = $mqtt->subscribe(topic => '/AlarmMode',
                           callback => sub {
                               my ($topic, $message) = @_;
                                       print $topic, ' ', $message, "\n"
                                   });

my $qos = $cv->recv; # subscribed, negotiated QoS == $qos



  # publish line-by-line from file handle
      $cv =  $mqtt->publish(handle => \*STDIN,
                            topic => '/topic');

我的问题是,如果我删除评论后的所有内容,publish line-by-line from file handle则我的应用程序将在运行后立即退出。

我尝试过包括一个while循环,该循环可休眠5秒钟,但它不起作用(该应用程序看起来好像已挂起)。

我知道我需要做一些事情来告诉应用程序,使其保持活力并保持冷静,但我不知道该命令是什么:-)

池上

如果您使用不支持AE的内容(例如sleep)进行阻止,则不会处理AE事件。

在允许处理AE事件的同时入睡,通常使用

my $done_cv = AE::cv;
$done_cv->recv;

使用$done_cv->send;结束睡眠。例如,如果您想睡5秒钟,则可以使用

my $sleep_cv = AE::cv;
my $w = AE::timer(5, 0, $sleep_cv);  # Short for AE::timer(5, 0, sub { $sleep_cv->send });
$sleep_cv->recv;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

脚本保持“圈内运行”

来自分类Dev

从CD运行Perl脚本?

来自分类Dev

如何自动保持脚本运行?

来自分类Dev

在Android上运行Perl脚本

来自分类Dev

用python运行perl脚本

来自分类Dev

运行以.pl结尾的perl脚本

来自分类Dev

用python运行perl脚本

来自分类Dev

使用未知的perl位置运行perl脚本

来自分类Dev

从Unix Shell脚本运行Perl脚本

来自分类Dev

在Apache下运行的Perl脚本的中断(SIGINT)Perl脚本

来自分类Dev

在Apache下运行的Perl脚本的中断(SIGINT)Perl脚本

来自分类Dev

从bash脚本退出,但保持进程运行

来自分类Dev

保持Python脚本运行的最佳方法?

来自分类Dev

如何防止exec保持脚本运行?

来自分类Dev

保持Python脚本持续运行以检查更改

来自分类Dev

从bash脚本退出,但保持进程运行

来自分类Dev

谷歌脚本在更新时保持运行总数

来自分类Dev

用于检查并保持程序运行的 Powershell 脚本

来自分类Dev

如何安装.pm以运行perl脚本

来自分类Dev

Perl脚本未运行条件语句?

来自分类Dev

同时在多个文件上运行Perl脚本

来自分类Dev

运行perl命令形式的shell脚本

来自分类Dev

在bash数组中运行perl脚本

来自分类Dev

在Perl中运行多个SQL脚本

来自分类Dev

如何在后台运行Perl脚本

来自分类Dev

Perl脚本正常运行,但速度太慢

来自分类Dev

使用ProcessBuilder通过Java运行perl脚本

来自分类Dev

Perl在脚本出口/模具上运行的功能

来自分类Dev

使用C#无法运行Perl脚本