我正在使用 Mojolicious::Lite 来声明 Web 服务的路由。也许我误解了路由的行为,但如果我在路由定义中调用子例程,它只会被调用一次。
我认为每次调用 web 服务路由时都应该触发 sub ......但事实并非如此。
例如我写了一条测试路线:
use Mojolicious::Lite;
get '/test' => {
text => get_test()
};
sub get_test {
say 'Hello iam only showing up once';
return 'test';
};
这是启动服务器并访问localhost:3000/test路由时的控制台输出:
你好 iam 只出现一次
[2020-04-04 22:07:21.09011] [69050] [info] 在“http://*:3000”
服务器上收听http://127.0.0.1:3000
[2020- 04-04 22:07:28.26033] [69050] [debug] [78278b87] GET "/test"
[2020-04-04 22:07:28.26097] [69050] [debug] [78278b87] 200 OK (0.000626s, 1597.444/s)
当服务器启动时,“Hello iam 只出现一次”输出一次。访问路线不会再次触发潜艇。
如果这是想要的行为,我怎样才能让我的路线在每次访问路线时触发子?
我需要这个,因为我在我的应用程序中使用这个 web 服务来扫描网络并返回结果。而且我想在每次调用 webservice GET 路由时重新扫描网络。否则,如果数据不是最新的,数据将毫无用处。
感谢您的帮助和解释。