ruby-on-rails - Sidekiq 的 perform_in 从未真正执行过,尽管它显示为“忙碌”
问题描述
我只是创建了一个工作人员来在后台重新启动 apache,因为在 rails 应用程序内部执行它只会冻结应用程序并引发“内部服务器错误”
我正在做一些非常简单的事情。
这是我的工人:
# app/workers/reload_apache_worker.rb
class ReloadApacheWorker
include Sidekiq::Worker
def perform
`sudo /etc/init.d/apache2 graceful`
end
end
我只是用它来称呼它ReloadApacheWorker.perform_in(5.seconds)
什么都没发生。我可以在 sidekiq Web 界面中看到它“忙”。
我究竟做错了什么?与我一起执行的其他 2 名工人.perform_async
工作完美无瑕,所以我不确定这个是怎么回事。
解决方案
如果您在(内部)请求期间重新启动服务器,您将收到一个错误,因为它不会响应它,因此您会收到一个错误。
推荐阅读
- python - 如何解决Pyqt5在加载html时创建Web浏览器崩溃
- c++ - 使用指针向量的问题(带代码)C++(以及对其使用便利性的疑问)
- java - Spring kafka 消费者不尊重 auto-offset-reset = latest
- javascript - 从静态目录调用本地 Javascript 文件
- node.js - 无法将对象添加到文档内的 MongoDB 数组
- java - Android签名initVerify导致异常
- python - 如何将一串单词和数字拆分为单词和数字列
- python - 有没有办法用 Keras ImageDataGenerator 和 Tensorflow 制作更小的时代?
- mysql - MySQL sum() 按月和年的值每次都会给我不同的结果
- algorithm - 双积分的自适应辛普森求积算法?