Asynchronous 从Tokio应用程序使用Actix:混合Actix_web::main和Tokio::main?

Asynchronous 从Tokio应用程序使用Actix:混合Actix_web::main和Tokio::main?,asynchronous,rust,rust-tokio,actix-web,Asynchronous,Rust,Rust Tokio,Actix Web,目前我有一个主要的写作喜欢 #[tokio::main] 异步fn main()->结果{ 我们可以使用这个确切的例子。现在我想基本上添加一个-l标志来改变我的应用程序的行为,当以这种方式触发时,我想让它在端口上侦听并运行一个web服务器。我想使用这样的文件记录 #[actix_web::main] async fn main() -> std::io::Result<()> { #[actix_web::main] 异步fn main()->std::io::Result

目前我有一个主要的写作喜欢

#[tokio::main]
异步fn main()->结果{
我们可以使用这个确切的例子。现在我想基本上添加一个
-l
标志来改变我的应用程序的行为,当以这种方式触发时,我想让它在端口上侦听并运行一个web服务器。我想使用这样的文件记录

#[actix_web::main]
async fn main() -> std::io::Result<()> {
#[actix_web::main]
异步fn main()->std::io::Result{
我如何合成两个
fn main
:一个用
#[actix\u web::main]
修饰,另一个用
#[tokio::main]
修饰,以便在已经使用tokio的应用程序中使用actix web?我找不到任何关于它的文档
这个?我们如何从Actix Web服务器使用Tokio的东西,以及如何将Tokio应用程序移植到Actix Web应用程序?

由于Actix Web内部使用Tokio,当您使用
#[Actix Web::main]
时,您将能够像使用
#[Tokio::main]
一样使用所有常用的Tokio实用程序

但是请注意,您需要正确匹配Tokio的版本。Actix web版本
3.x.y
使用Tokio
0.2.x
,因此在使用该版本的Actix时,您需要使用与该版本的Tokio配合使用的实用程序。要使用最新版本的Tokio,您需要使用Actix-w的
4.0.0-beta.x
版本而是eb


一旦Actix web 4退出beta版,请随意编辑此答案。

看看我怀疑你可以有多个主入口,因为你只能有一个主入口你不能有多个
main
函数,但既然Actix在东京运行,可能有办法告诉Actix使用现有的东京运行时,而不是启动自己的运行时。
#[actix_web::main]
async fn main() -> std::io::Result<()> {