簡體   English   中英

apn_sender無法啟動Apple Push Notifications的resque worker

[英]apn_sender failing to start resque worker for Apple Push Notifications

我正在嘗試使用apn_sender gem發送Apple Push Notifications。 我已經按照github頁面以及此處的說明進行操作了。

我Redis的工人成功啟動,以及我(似乎)能夠成功地啟動resque工人(並驗證其是否與list命令運行)被跟隨用這個命令:

resque:work QUEUE='*'

但是,當我嘗試使用以下命令啟動app_sender時

script/apn_sender --environment=production --verbose start

我收到以下錯誤:

I, [2013-06-03T16:14:17.848632 #15074]  INFO -- : 2013-06-03 16:14:17 -0400: Running before_first_fork hook
I, [2013-06-03T16:14:17.848968 #15074]  INFO -- : 2013-06-03 16:14:17 -0400: Failed to start worker : #<NoMethodError: undefined method `call' for []:Array>
F, [2013-06-03T16:14:17.849138 #15074] FATAL -- : wrong number of arguments (1 for 0) (ArgumentError)
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/apn_sender-1.0.5/lib/resque/hooks/before_unregister_worker.rb:10:in `unregister_worker'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/resque-1.24.1/lib/resque/worker.rb:176:in `rescue in work'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/resque-1.24.1/lib/resque/worker.rb:130:in `work'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/apn_sender-1.0.5/lib/apn/sender_daemon.rb:70:in `run'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/apn_sender-1.0.5/lib/apn/sender_daemon.rb:58:in `block (2 levels) in daemonize'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/application.rb:255:in `call'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/application.rb:255:in `block in start_proc'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/daemonize.rb:82:in `call'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/daemonize.rb:82:in `call_as_daemon'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/application.rb:259:in `start_proc'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/application.rb:296:in `start'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/controller.rb:70:in `run'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons.rb:197:in `block in run_proc'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109:in `call'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109:in `catch_exceptions'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/daemons-1.1.9/lib/daemons.rb:196:in `run_proc'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/apn_sender-1.0.5/lib/apn/sender_daemon.rb:57:in `block in daemonize'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/apn_sender-1.0.5/lib/apn/sender_daemon.rb:55:in `times'
/Users/.../.rvm/gems/ruby-1.9.3-p327/gems/apn_sender-1.0.5/lib/apn/sender_daemon.rb:55:in `daemonize'
script/apn_sender:10:in `<main>'

而且,我的腳本/ apn_sender看起來像:

#!/usr/bin/env ruby

# Daemons sets pwd to /, so we have to explicitly set RAILS_ROOT
RAILS_ROOT =File.expand_path(File.join(File.dirname(__FILE__),'..'))

require 'rubygems'
require 'apn'
require 'apn/sender_daemon'

APN::SenderDaemon.new(ARGV).daemonize

任何幫助,將不勝感激!

我非常確定這里的問題是resque的版本。 我會仔細檢查,但就我測試過的apn_sender而言,它與resque 1.19.0兼容,除此之外沒有其他功能。 這里的原因是在resque寶石上有一些猴子補丁。 仔細檢查resque的正確版本后,我會將更新推送到gemspec文件,所以沒有人再得到這個。 同樣在2.0版(主版)中,我們不再是猴子打補丁的老手了,甚至不會成為強制依賴。

對您的簡短修復,強制重新版本使用1.19.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM