2017-02-13 159 views
0

我有一个运行在Nginx/Passenger上的Rails应用程序。它有一个rufus-scheduler cron作业,在后台运行并通过电子邮件发送通知。Rufus调度器没有在生产中运行Nginx/Passenger

当我在Nginx/Passenger上开始生产应用程序时,电子邮件不会被发送。在生产日志中,它不显示rufus调度程序的任何日志。

我被困在这个问题中。无法调试调度程序。

但是在阅读了一些问题&文章后,我确信调度程序线程会被乘客杀死。

代码片段:

例子:

require 'rufus-scheduler' 

scheduler = Rufus::Scheduler::singleton 

scheduler.cron '0 12 * * *' do 
    puts "alert scheduler called at" 
    puts Time.now 
    system("rake trigger:email RAILS_ENV=production") 
end 

请帮我在CONF为乘客/ nginx的,让调度线程来运行&触发邮件。

+0

请参阅本http://stackoverflow.com/questions/27980050/rufus-scheduler-not-running-in-production –

+0

重复https://github.com/jmettraux/rufus-scheduler/issues/235 – jmettraux

+0

如果您不要在你的问题中添加更多细节(例如你的乘客配置),那么没有人能够帮助你。 – jmettraux

回答

1

您需要在passanger配置块中设置此项

passenger_spawn_method direct;

+0

或者你可以直接乘客启动--spawn-method direct –

+0

感谢Keval,它已经被添加了,但它仍然没有任何其他原因或配置 –