目前我有一个像async example for the Reqwest library这样写的main。
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {我们可以使用那里的确切示例来实现这一点。现在我想基本上添加一个-l <port>标志来改变我的应用程序的行为,当以这种方式触发时,我想让它在端口上侦听并运行一个web服务器。我想使用文档如下所示的Actix Web,
#[actix_web::main]
async fn main() -> std::io::Result<()> {如何合成两个fn main:一个用#[actix_web::main]装饰,另一个用#[tokio::main]装饰,以便在已经使用Tokio的应用程序中使用Actix Web?我找不到任何关于这个的文档?如何从Actix Web服务器使用Tokio内容,以及如何将Tokio应用程序移植到Actix Web应用程序?
发布于 2021-03-01 17:08:21
因为Actix-web在内部使用Tokio,所以当您使用#[actix_web::main]时,您将能够像使用#[tokio::main]一样使用所有常用的Tokio实用程序。
但是,请注意,您需要正确匹配Tokio的版本。Actix-web版本的3.x.y使用Tokio 0.2.x,因此在使用该版本的Actix时,您需要使用与该版本的Tokio一起工作的实用程序。要使用最新版本的Tokio,您需要使用Actix- 4.0.0-beta.x版本。
一旦Actix-web4过了测试版,您可以随时编辑此答案。
https://stackoverflow.com/questions/66416174
复制相似问题