我正在开始使用Celery进行Django项目.为了本地开发目的,我根据这些指导http://ask.github.com/celery/tutorials/otherqueues.html#django-database设置了djcelery和djkombu(数据库传输),但计划使用rabbitmq生产服务器.
我发现它有效,但是一个或多个工人会随意挂起.工作人员依赖于不同的任务,因此不是一个特定任务进入无限循环的情况.当我试图关闭芹菜时,在日志中我通常会看到除了一个以外的所有工人.在工作人员挂起之前和之后,我都尝试使用celeryctl获取有关工作人员的信息,但celeryctl总是失败并显示消息"错误:没有节点在时间限制内回复.".我也尝试过检查工作人员http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workers但是所有的方法都没有返回.
关于如何诊断导致工人挂起或有帮助的任何想法.
EMACS Lisp程序员做什么,当他们想写一些大致相当于......的东西时...
for line in open("foo.txt", "r", encoding="utf-8").readlines():
...(split on ws and call a fn, or whatever)...
Run Code Online (Sandbox Code Playgroud)
..?
当我查看EMACS lisp帮助时,我看到有关将文件打开到文本编辑缓冲区的功能 - 不完全是我想要的.我想我可以编写函数来访问文件的行,但是如果我这样做,我就不希望用户看到它,而且从文本处理的角度看它似乎不是很有效.
为什么这不像我想的那样工作?
set x [if {1} {return 2} {return 3}]
Run Code Online (Sandbox Code Playgroud)
命令输出显示2,但是当你检查它的值时x,发现它是未定义的..!
我看过一个解决方法,......
proc give {x} {return $x}
set x [if {1} {give 2} {give 3}]
Run Code Online (Sandbox Code Playgroud)
......但我不明白为什么第一个不起作用.
"命令的返回值是执行的正文脚本的结果,如果没有任何表达式非零并且没有bodyN,则为空字符串."
问题:
set x [if {1} {return 2} {return 3}]设置值x?set x [if {1} {return 2} {return 3}]不起作用,如何在交互式shell上tclsh显示" 2"?tclsh显示" 2",它是如何set x保持未定义的?