簡體   English   中英

調試redis,rails和sidekiq

[英]Debug redis, rails and sidekiq

我正在嘗試異步向某些用戶發送電子郵件:

這是昨天完美運作的方法鏈:

DiscussionMailer.delay.new_reply_notification()

在控制台中運行它似乎完美地工作,因為它返回工作者ID。 我可能錯了,這就是那個鍵實際上是什么,但正如你所看到的,從軌道方面看,一切都在發揮作用。

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" 

然而,事實並非如此。 根據經驗和軌道炮日志,電子郵件不會靠近軌道炮。 這似乎是因為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可以通信,但是很糟糕,因為神的名字正在發生什么? 我該如何調試這個問題? railgun日志和rails日志都沒用。 我在哪里可以找到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

暫無
暫無

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

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