热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_52593983
非凸科技
4 年前
trueweixin_52593983

Rust的一个异步后台处理:Fang

Rust第一个稳定版本于2015年发布,但其生态系统中仍然存在一些用于解决常见任务的缺失,其中之一是后台处理。

在软件工程中,后台处理是解决几个问题的常用方法:
1.执行定期任务。例如,传递通知、更新缓存值;
2.推迟代价高的工作,以便您的应用程序在后台执行计算时保持响应。

大多数编程语言都有后台处理框架/库。例如:
1.Ruby -sidekiq。它使用 Redis 作为作业队列。
2.Python - dramatiq。它使用 RabbitMQ 作为作业队列。
3.Elixir - oban。它使用 Postgres DB 作为作业队列。

异步编程(async/await)可用于后台处理,不过,如果直接使用它有几个主要缺点:
1.它不能控制在任何给定时间正在执行的任务数量。因此,许多衍生的任务可能会使它们启动的一个/多个线程超载。
2.它不提供任何有助于调查系统和发现瓶颈的监控
3.任务不是持久的。因此,每次应用程序重新启动时,所有排队的任务都会丢失

为了解决异步编程的这些缺点,在 fang 库中可以实现异步处理。

CSDN App 扫码分享
分享
评论
1
打赏
  • 复制链接
  • 举报
下一条:
运筹帷幄,科三必过
立即登录