微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果主服务器未运行,sidekiq工作程序是否运行?

如何解决如果主服务器未运行,sidekiq工作程序是否运行?

我有一个Rails应用程序部署到了Heroku(免费版)。

我已经设置了一些通过sidekiq工作的邮件程序。

我有一个记录,可能截止日期为2020年9月5日。

我的工作人员已设置为在前一天发送邮件。因此,在2020年9月4日,它应该运行该工作程序并发送邮件

但是,在我看来,一旦dyno停止运行,这些作业将不再在所需的时间运行。换句话说,在2020年9月4日,主服务器未运行,因此redis服务器/ sidekiq似乎不起作用。

在这里做错了什么?我想将在指定时间发生的作业排入队列,无论主服务器是否正在运行/是否正在使用应用程序。

解决方法

Sidekiq和Redis在与主Web服务器不同的服务器上运行。您可以在不运行Web服务器的情况下运行sidekiq服务器。 Redis通常作为附加组件在Heroku中运行,不会列为dyno。 在Heroku中的资源下,它应该列出您的应用程序正在使用的所有dynos。您应该看到同时列出了Web服务器和sidekiq dynos。 要仅运行sidekiq,请从heroku控制台中关闭Web服务器dynos。 请记住,尽管如此,您仍然需要一种排队您的sidekiq作业的方法。通常,它们会因Web上的用户交互而排队。如果您没有运行Web服务器,则可以考虑使用Clock Clock gem这样的工具来触发您的工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。