The*_*Fox 8 elixir phoenix-framework
我的头衔不是很好,因为我发现很难用小片段来解释我想要的东西......所以我会深入尝试!
我正在使用Phoenix Web框架编写Elixir应用程序.
我想要做的是:
该过程不需要返回到Web路由(即其异步)
我知道如何通过使用消息队列(Beanstalk,RabbitMQ,sidekiq)来处理其他语言,并将"作业"交给工作人员,然后编写工作人员来处理队列中的作业.
但是......我知道在Elixir中它默认排队,因为所有内容都被推入"邮箱"(在YouTube视频中看到它:p)
但是我找不到任何合适的代码示例来说明如何让控制器(在phoenix中)产生一个异步进程,该进程将在消息队列中处理.
有没有人知道任何体面的资源,显示我正在寻找什么,或者是否有人有任何代码片段,将给我一个基本的描述如何做到这一点.
谢谢 :)
编辑:
正如评论中所提到的,我已经创建了一个基本教程,介绍如何在Elixir应用程序中启动和运行Poolboy.我希望它对人们有用(并且正确!):)
如果作业"重要",您仍然希望使用一些存储来保留它们.否则,如果节点因任何原因而关闭,则会丢失系统中的所有作业.如果是这种情况,您可以使用RabbitMQ之类的东西,并在您的应用程序中创建一堆worker:
children = [
worker(QueueConsumer, [], id: :consumer_1),
worker(QueueConsumer, [], id: :consumer_2),
worker(QueueConsumer, [], id: :consumer_3),
worker(QueueConsumer, [], id: :consumer_4)
]
Run Code Online (Sandbox Code Playgroud)
消费者将从RabbitMQ获得下一条消息并在它们到来时处理它们.
如果您不关心持久化它们,或者您想根据CPU使用率等其他标准来管理它们,那么我建议您查看作业库(在Erlang中):https://github.com/uwiger/jobs
| 归档时间: |
|
| 查看次数: |
2225 次 |
| 最近记录: |