繁体   English   中英

heroku和sidekiq如何在我的主要dyno之外运行这些工作?

[英]How does heroku and sidekiq run the jobs outside of my main dyno?

我对heroku和sidekiq的工作方式感到困惑。 我的Procfile看起来像:

web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq -e $RAILS_ENV

现在,在我的轨道中,我在我的代码中运行sidekiq作业,例如:

SomeWorker.perform_async(some.id)

现在,这会自动以某种方式使此过程在工作者动态中运行吗?

如果是的话,它怎么知道将其淘汰?

这很令人困惑,因为当我位于主git文件夹中时,我可以运行heroku命令,并且我知道这是针对我的Web dyno的,但是接下来我如何查看我的worker dyno的日志,或者将它们显示在我的dyno日志中?

设置Procfile ,您要告诉Heroku设置两种类型的dynos: webworker 它们可能使用相同的Rails应用程序代码,但使用不同的命令启动( bundle exec pumabundle exec sidekiq )。 然后,您可以扩展每种过程类型所需的许多VM(动态数)。

将两者结合在一起的胶水是Redis。 当您从web流程运行SomeWorker.perform_async(some.id) ,您正在向Redis添加一条记录以描述要运行的作业。 您的worker进程监视Redis是否有新记录,然后对其进行处理。

Heroku日志显示所有正在运行的测功机的日志。 因此,您应该看到来自webworker进程的日志混在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM