部署新版本的Sinatra应用程序后停止特定作业

时间:2018-04-27 19:08:17

标签: ruby sinatra rufus-scheduler

我在Sinatra应用程序(使用NGINX的Phusion Passenger)中运行了一个rufus-scheduler作业。在f = open('/home/paul/UnicodeData.txt').readlines() def LEVANT(c): return \ ((c) >= 0x00590 and ((c) <= 0x008FF or \ ((c) >= 0x0FB1D and ((c) <= 0x0FDFF or \ ((c) >= 0x0FE70 and ((c) <= 0x0FEFF or \ ((c) >= 0x10800 and ((c) <= 0x10CFF or \ ((c) >= 0x1E800 and ((c) <= 0x1EEFF)))))))))) for ll in f: ll = ll.strip() if not ll: continue l = ll.split(';') if l[4] == 'R': i = l[0] i = eval('0x' + i) if not LEVANT(i): print('R ===> ' + ll) if l[4] == 'L': i = l[0] i = eval('0x' + i) if LEVANT(i): print('R ===> ' + ll) 的底部,我有:

app.rb

它正在运行。但是当我使用Capistrano用新版本更新应用程序时,我注意到旧作业仍然存在且每个都以5分钟的间隔运行。

如何确保关闭旧的rufus-scheduler作业并启动新的作业?

我尝试在底部添加:

  scheduler.every '5m' do
    do_something_cool
  end

但那没用。

1 个答案:

答案 0 :(得分:1)

我不熟悉rufus-scheduler,但正如我在documentation中所读到的那样,它只是使用线程来表示日程安排。所以你只需要确保你的旧过程已经关闭。