小编Mar*_*oni的帖子

Celery动态队列的创建和路由

我正在尝试调用一个任务并为该任务创建一个队列(如果它不存在)然后立即将该被调用的任务插入该队列.我有以下代码:

@task
def greet(name):
    return "Hello %s!" % name


def run():
    result = greet.delay(args=['marc'], queue='greet.1',
        routing_key='greet.1')
    print result.ready()
Run Code Online (Sandbox Code Playgroud)

然后我有一个自定义路由器:

class MyRouter(object):

    def route_for_task(self, task, args=None, kwargs=None):
        if task == 'tasks.greet':
            return {'queue': kwargs['queue'],
                    'exchange': 'greet',
                    'exchange_type': 'direct',
                    'routing_key': kwargs['routing_key']}
        return None
Run Code Online (Sandbox Code Playgroud)

这会创建一个名为的交换greet.1和一个被调用的队列,greet.1但队列是空的.应该只调用交换机greet,它知道如何将路由密钥路由greet.1到被调用的队列greet.1.

有任何想法吗?

python rabbitmq celery

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

如何获取django查询集的下一行?

我有一个查询集,将返回其中的几行.其中一行有一个slug"slug-456",如果相对于查询集的当前排序具有slug"slug-456"的那一行之后,我如何到达下一行?

我可以遍历查询集并检查当前行是否有slug"slug-456",如果它注意到下一行是我所追求的,但有更有效的方法吗?

更新: 我是这样做的:

id_list = list(qs.values_list('id', flat=True))
try:
    next_id = id_list[id_list.index(obj.id) + 1]
    obj = Object.objects.get(id=next_id)
except IndexError:
    pass
Run Code Online (Sandbox Code Playgroud)

django

7
推荐指数
2
解决办法
7555
查看次数

如何在重定向后测试Django中的上下文和会话?

我有一个看起来像这样的观点:

def login(request):
    ...
    # some variables has been set here
    ...
    if request.POST.get('remember_me', None):
        request.session.set_expiry(1209600) # 2 weeks
    return HttpResponseRedirect(reverse('dashboard'))
Run Code Online (Sandbox Code Playgroud)

现在如果我使用上下文断言变量,我得到错误:"AttributeError:'HttpResponseRedirect'对象没有属性'context'"这对于会话来说是相同的.我如何测试它然后设置了一些变量并且即使我重定向也设置了可能的会话到期?

django

6
推荐指数
1
解决办法
5095
查看次数

Saltstack分组命令

如果我必须执行以下3个命令,我该如何对它们进行分组,所以我只需要调用一个命令?

salt '*' git.fetch cwd=/var/git/myproject opts='--all' user=git
salt '*' git.pull cwd=/var/git/myproject opts='origin master'
salt '*' nginx.signal reload
Run Code Online (Sandbox Code Playgroud)

我可以使用面料把它们放在一个函数中说deploy可能接受一个minion名称然后通过master运行,但是我想知道saltstack是否有内置的东西?

python salt-stack

6
推荐指数
1
解决办法
854
查看次数

django:单元测试来自响应和会话的html标签

有没有办法从响应中测试html:

response = self.client.get('/user/login/')
Run Code Online (Sandbox Code Playgroud)

我想要一个详细的检查,如输入ID和其他属性.此外,已设置的会话如何?是否有可能在测试中检查它们的值?

python django unit-testing

5
推荐指数
3
解决办法
4094
查看次数

如何在Gevent里面使用日志?

我有一个代码:

log = logging.getLogger(__file__)

def func():
    print "1"
    log.debug("Printed")

g = gevent.spawn(func)
g.join()
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我的日志不会显示在shell中.有任何想法吗?有没有更好的方法来记录基于gevent的协同程序?

python gevent

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

Python 快速静态文件服务

在 Python 中提供静态文件的最快方法是什么?我正在寻找与 Nginx 的静态文件服务相同或足够接近的东西。

我知道 SimpleHTTPServer 但不确定它是否可以高效可靠地处理多个文件的服务。

另外,我不介意它成为某种库/框架的一部分,只要它的库/框架是轻量级的。

python

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

按音标查词

我知道搜索具有类似声音的单词的算法,例如Fuzzy库支持的算法。

但是如何反向搜索呢?也就是说,给定一个符号 like /?/,搜索所有可能的单词匹配的文档,比如earth, thigh, throw, bath

python search phonetics

5
推荐指数
0
解决办法
1350
查看次数

PyQt上下文菜单

我正在动态地向QTableWidget添加一个contextmenu:

playlistContenxt = QAction("Add to %s" % (currentItem.text()), self.musicTable)
playlistContenxt.setData(currentData)
self.connect(playlistContenxt, SIGNAL("triggered()"), self.addToPlaylistAction)
self.musicTable.addAction(playlistContenxt)
Run Code Online (Sandbox Code Playgroud)

currentItem.text()是从db获取的播放列表名称,因为您只能看到一个函数(addToPlaylistAction)接收来自不同操作的所有触发器.在我的addToPlaylistAction函数中,如何确定单击了哪个菜单?

python qt pyqt4

3
推荐指数
1
解决办法
2089
查看次数

有没有支持添加/删除用户的python xmpp库?

现在我有一个python类,通过执行"ejabberdctl register/unregister"命令创建用户/删除用户.是否有支持添加/删除用户的python xmpp库?

python xmpp ejabberd

3
推荐指数
1
解决办法
1980
查看次数