小编Mar*_*arc的帖子

什么是Elixir Bang功能?

我首先注意到一个带有尾随感叹号/爆炸(!)的函数,同时浏览Phoenix教程(在Incoming Events部分)

def handle_in("new_msg", %{"body" => body}, socket) do
    broadcast! socket, "new_msg", %{body: body}
    {:noreply, socket}
end
Run Code Online (Sandbox Code Playgroud)

尾随感叹号是什么意思?它有什么用吗?我一直在寻找并尝试寻找,但我不确定我是否使用了正确的条款.到目前为止,似乎只有作为约定的函数会在失败时引发错误,但总是意味着它总是意味着.

我看到它的唯一提及出现在Dave Thomas的"Programming Elixir"中:

Identifiers in Elixir are combinations of upper and lower case ASCII 
characters, digits, and underscores. Function names may end with a 
question mark or an exclamation point.
Run Code Online (Sandbox Code Playgroud)

而且在文档它提到:

Notice that when the file does not exist, the version with ! raises an
error. The version without ! is preferred when you want to handle …
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

28
推荐指数
2
解决办法
5258
查看次数

为什么在调用Redis Lua脚本时有KEYS和ARGV数组?

从Redis中调用Lua脚本时,可以在两个数组中传递值:KEYS和ARGV.有什么不同?Redis如何处理KEYS数组中的值?如果在我的脚本中,我必须使用在运行时动态生成的密钥,该怎么办?

redis

17
推荐指数
1
解决办法
3710
查看次数

从未知任务中检索Celery中'task_id'的结果

如果我以前不知道执行了哪个任务,如何提取任务的结果?这是设置:给定以下源('tasks.py'):

from celery import Celery

app = Celery('tasks', backend="db+mysql://u:p@localhost/db", broker = 'amqp://guest:guest@localhost:5672//')

@app.task
def add(x,y):
   return x + y


@app.task
def mul(x,y):
   return x * y
Run Code Online (Sandbox Code Playgroud)

RabbitMQ 3.3.2在本地运行:

marcs-mbp:sbin marcstreeter$ ./rabbitmq-server

              RabbitMQ 3.3.2. Copyright (C) 2007-2014 GoPivotal, Inc.
  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
  ##  ##
  ##########  Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
  ######  ##        /usr/local/var/log/rabbitmq/rabbit@localhost-sasl.log
  ##########
              Starting broker... completed with 10 plugins.
Run Code Online (Sandbox Code Playgroud)

与Celery 3.1.12在本地运行:

 -------------- celery@Marcs-MacBook-Pro.local v3.1.12 (Cipater)
---- **** -----
--- * ***  * -- Darwin-13.2.0-x86_64-i386-64bit
-- * - **** …
Run Code Online (Sandbox Code Playgroud)

python jobs celery celery-task

8
推荐指数
1
解决办法
4570
查看次数

为什么python集只保留False和Zero?

创建集合时:

>>> falsey_set = {0, '', False, None}  # set([False, '', None])
>>> falsey_set = {False, '', 0, None}  # set([0,'', None])
>>> # adding an item to the set doesn't change anything either
>>> falsey_set.add(False)  # set([0,'',None])
Run Code Online (Sandbox Code Playgroud)

或字典,在某种程度上模仿行为:

>>> falsey_dict = {0:"zero", False:"false"}  # {0:'false'}  # that's not a typo
>>> falsey_dict = {False:'false', 0:'zero'}  # {False: 'zero'} # again, not a typo
>>> falsey_set.add(())  # set([0,'', None, ()])
>>> falsey_set.add({})  
Traceback (most recent call last):
  File "<stdin>", line …
Run Code Online (Sandbox Code Playgroud)

python set

8
推荐指数
1
解决办法
152
查看次数

Pycharm没有使用nosetests配置文件

当python的解释器执行时,PyCharm不会从nose配置文件加载任何设置.如何启用PyCharm来使用配置文件?我也想了解原因.

这是非常重要的设置来从配置文件中,并不仅PARAMS我PyCharm的实例.我提供的设置只有3个文件,但我最终将使用答案来协作共享测试设置.

这是设置:

~/PycharmProjects/Testing/test_suite.py
~/PycharmProjects/Testing/unnecessary_math.py
~/nose.cfg
Run Code Online (Sandbox Code Playgroud)

当通过解释器(在PyCharm之外)运行时,"nose.cfg"设置被识别并运行给出:

Marcs-MacBook-Pro:Testing marcs$ nosetests -s .
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
Doctest: unnecessary_math.divide ... ok
Doctest: unnecessary_math.multiply ... ok
Starting Test
['/Users/marcs/nose.cfg']
test_suite.test_numbers_0_4 ... ok
test_suite.test_num_4_4_4_4 ... ok
Ending Test

----------------------------------------------------------------------
XML: nosetests.xml
----------------------------------------------------------------------
Ran 4 tests in 0.008s

OK
Marcs-MacBook-Pro:Testing marcs$ 
Run Code Online (Sandbox Code Playgroud)

从PyCharm运行时,我得到了这个输出

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python /Applications/PyCharm.app/helpers/pydev/pydevd.py --multiproc --client 127.0.0.1 --port 61446 --file /Applications/PyCharm.app/helpers/pycharm/noserunner.py /Users/marcs/PycharmProjects/Testing/ -s
Testing started at 5:36 AM ...
pydev debugger: process 10464 is connecting

Connected …
Run Code Online (Sandbox Code Playgroud)

python nose nosetests pycharm

5
推荐指数
1
解决办法
2748
查看次数

对 Ingress 服务不可用 503 进行故障排除

对我的 kubernetes 节点发出的每个请求都会导致Ingress Service Unavailable(503) 响应。

我应该采取哪些不同的步骤来解决此问题?

raspberry-pi kubernetes traefik kubernetes-ingress k3s

2
推荐指数
1
解决办法
551
查看次数