sidekiq 是基于 redis 搞的,但是很疑惑,我改了代码后,重启队列后,队列还是会运行以前的代码。。。为什么。。
你推进队列的对象,包含了该对象当时所有的信息,所以重启后,之前的没有运行完成的任务,会有问题。
如果是新任务,肯定就是新的对象数据和代码了。新任务还有老代码情况的话,你可能没有重启成功,看下进程列表。
git 23761 1.2 0.6 4256540 220892 ? Sl May26 3:48 sidekiq 2.17.0 gitlab [0 of 25 busy] git 26455 0.0 0.0 8112 932 pts/0 S+ 00:05 0:00 grep --color=auto sidekiq
有这两个进程
#8 楼 @moliliang 。。。第二个是 grep 这个命令本身的进程 sidekiq 的底层只是对参数用 json 进行序列化了,本身是不存代码的,跑 sidekiq 的时候打开 redis-cli monitor 的监控就能看到每次读写 redis 的操作