ruby - 在部署新版本的 Sinatra 应用程序时停止特定作业
问题描述
我在 Sinatra 应用程序(带有 NGINX 的 Phusion 乘客)中运行了一个 rufus-scheduler 作业。在app.rb
我的底部有:
scheduler.every '5m' do
do_something_cool
end
它得到的工作运行。但是当我使用 Capistrano 用新版本更新应用程序时,我注意到旧作业仍然存在,并且每个作业都以 5 分钟的间隔运行。
如何确保关闭旧的 rufus-scheduler 作业并启动新的作业?
我试过在底部添加这个:
at_exit do
if scheduler
scheduler.shutdown
end
end
但这没有用。
解决方案
我不熟悉rufus-scheduler
,但正如我在文档中所读到的,它只是使用线程进行调度。所以你只需要确保你的旧进程已经关闭。
推荐阅读
- arrays - 将项目从子数组列表分发到其他子数组/有时会随机出错
- javascript - 选择框背景颜色html
- apache-storm - 如何在 Apache Storm Cluster 中维护分布式 HashMap
- c++ - OpenCV 和 iOS,将图像提取/裁剪成匹配的部分
- python - 线程化独立函数并等待它们完成
- perl - Amazon Web Services Lambda 函数中的 Perl 脚本
- python - python xpath 返回空列表而不是值或文本
- linux - 我有一个文件,我想将它与另一个目录中的所有文件进行比较,以找出哪个相同
- java - MapsActivity 中的自动更新位置
- java - 使用 Guava Graph 按 ID 获取节点