Ruby on rails 调试redis、rails和sidekiq
我正在尝试向某些用户异步发送电子邮件: 以下是昨天非常有效的方法链:Ruby on rails 调试redis、rails和sidekiq,ruby-on-rails,redis,sidekiq,Ruby On Rails,Redis,Sidekiq,我正在尝试向某些用户异步发送电子邮件: 以下是昨天非常有效的方法链: DiscussionMailer.delay.new_reply_notification() 在控制台中运行这个似乎工作得很好,因为它返回了工作者id。我可能错了,这就是键的实际含义,但正如您所看到的,从rails的角度来看,一切都在工作 2.0.0p247 :004 > DiscussionMailer.delay.new_reply_notification(User.last, Reply.last, Disc
DiscussionMailer.delay.new_reply_notification()
在控制台中运行这个似乎工作得很好,因为它返回了工作者id。我可能错了,这就是键的实际含义,但正如您所看到的,从rails的角度来看,一切都在工作
2.0.0p247 :004 > DiscussionMailer.delay.new_reply_notification(User.last, Reply.last, Discussion.last, Forum.last )
User Load (0.6ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
Reply Load (0.2ms) SELECT "replies".* FROM "replies" ORDER BY "replies"."id" DESC LIMIT 1
Discussion Load (0.2ms) SELECT "discussions".* FROM "discussions" ORDER BY "discussions"."id" DESC LIMIT 1
Forum Load (0.2ms) SELECT "forums".* FROM "forums" ORDER BY "forums"."id" DESC LIMIT 1
2014-05-04T00:54:45Z 48591 TID-5s8e0 INFO: Sidekiq client with redis options {}
=> "3c35e763a23304e3f7e39e1e"
然而,事实并非如此。从经验和railgun日志来看,电子邮件离railgun不远。这似乎是因为redis没有做任何事情:
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 2.6.13 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 48750
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
[48750] 04 May 02:02:48.687 # Server started, Redis version 2.6.13
[48750] 04 May 02:02:48.687 * DB loaded from disk: 0.001 seconds
[48750] 04 May 02:02:48.687 * The server is now ready to accept connections on port 6379
我应该得到一些反馈,对吗
我关闭redis服务器并尝试相同的操作,得到:
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)
这很好,因为它表明redis和sidekiq可以通信,但不好,因为发生了什么事?我应该如何调试这个问题?轨道炮日志和轨道日志都是无用的我在哪里可以找到redis日志?或者这没有帮助,因为工人们(或者不管他们是什么人,只是在几个小时前才了解redis)甚至还没有“接触”redis?看起来你还没有启动/重新启动sidekiq。做吧,它会起作用的 错误消息:
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)
如果Redis和Sidekiq没有通信,则应用程序的Redis gem似乎无法与应用程序本地主机6379端口上的Redis服务器通信
您需要启动Redis服务器,当它启动并运行时,启动Sidekiq服务器。启动每个的过程取决于每个的配置
至于日志,当您启动每个服务器时,您将希望将其输出导出到日志文件。因此,您应该在计算机上的某个位置创建一个空日志文件,然后在启动服务器时修改命令:
redis-server > /path/to/your/redis.log 2>&1