小编rub*_*eet的帖子

如何将列表合并到元组列表中?

什么是Pythonic方法来实现以下目标?

# Original lists:

list_a = [1, 2, 3, 4]
list_b = [5, 6, 7, 8]

# List of tuples from 'list_a' and 'list_b':

list_c = [(1,5), (2,6), (3,7), (4,8)]
Run Code Online (Sandbox Code Playgroud)

每个成员list_c都是一个元组,其第一个成员来自list_a,而第二个来自list_b.

python merge tuples list

279
推荐指数
7
解决办法
23万
查看次数

Python支持MySQL预处理语句吗?

我之前参与过一个PHP项目,其中准备好的语句使SELECT查询的速度提高了20%.

我想知道它是否适用于Python?我似乎无法找到任何明确表示它做或不做的事情.

python mysql prepared-statement

47
推荐指数
5
解决办法
5万
查看次数

在Python 2.6之前的版本中,urllib2.urlopen()的超时

urllib2的文件说,超时参数是在Python 2.6增加.不幸的是,我的代码库已经在Python 2.5和2.4平台上运行.

有没有其他方法来模拟超时?我想要做的就是让代码在一段固定的时间内与远程服务器通话.

也许任何替代内置库?(不要像pycurl那样安装第三方)

python urllib2 urlopen

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

Django Celery:管理界面显示零任务/工人

我用Django ORM设置Celery作为后端.试图监控幕后发生的事情.

  • 我用-E标志 开始了celerydpython manage.py celeryd -E -l INFO -v 1 -f /path/to/celeryd.log

  • 启动celerycam,默认快照频率为1秒.python mannage.py celerycam

我可以看到正在执行的任务(在芹菜日志中)和存储的结果(数据模型会定期被这些任务更改).但是,Django管理面板中的任务/工作人员页面显示零项.当我开始celeryev(显示o events/tasks/workers)时,同样的事情发生了.

是否需要更改其他配置设置才能实现监控?

我的软件堆栈:Django 1.1,Celery 2.2.4,Python 2.4

celery django-celery

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

Django ORM可以对列的特定值执行ORDER BY吗?

我有一个表'门票'与以下列

  • id - 主键 - 自动增量
  • title - varchar(256)
  • status - smallint(6) - 可以有1到5之间的任何值,由Django处理

当我要做的时候,SELECT *我想要status = 4顶部的行,其他记录将跟随它们.它可以通过以下查询来实现:

select * from tickets order by status=4 DESC
Run Code Online (Sandbox Code Playgroud)

这个查询可以通过Django ORM执行吗?应该将哪些参数传递给QuerySet.order_by()方法?

python mysql django orm

18
推荐指数
3
解决办法
3196
查看次数

Celery - RabbitMQ中的消息可以同时由两个或更多工人消费吗?

也许我在愚蠢地提出这个问题,但在进一步开展工作之前,我需要围绕基本概念.

我正在处理几千个RSS源,使用多个Celery工作节点和RabbitMQ节点作为代理.每个订阅源的URL都作为消息写入队列中.工作人员只是从队列中读取URL并开始处理它.我必须确保两个工作人员不会同时处理单个RSS源.

确保任务的文章一次只执行一个,建议一个基于Memcahced的解决方案,用于在处理时锁定Feed.

但我想要了解的是,为什么我需要使用Memcached(或其他东西)来确保RabbitMQ队列上的消息不会被多个worker同时使用.RabbitMQ(或Celery)中是否有一些配置更改可以实现此目标?

python rabbitmq celery django-celery

13
推荐指数
2
解决办法
2829
查看次数

nock.js - 如何匹配URL中的任何参数组合

我正在尝试模拟对此API网址的响应

http://api.myapihost.com/images?foo=bar&spam=egg
Run Code Online (Sandbox Code Playgroud)

URL参数组合可以变化.我试图拦截此请求并使用空对象进行响应.

nock('http://api.myapihost.com')
  .persist()
  .get('/images', '*')
  .reply(200, {});
Run Code Online (Sandbox Code Playgroud)

我的测试用例运行时收到此错误消息:

Uncaught Error: Nock: No match for HTTP request GET /images?height=2500
Run Code Online (Sandbox Code Playgroud)

如何配置nock以匹配任何URL参数组合?

javascript node.js nock.js

13
推荐指数
2
解决办法
6201
查看次数

为什么芹菜不能干净地关闭?

在使用Ctlr-C键盘中断向Celery工作人员发出TERM信号两次(暖关机和冷关机)后,Celery工作人员才挂断电话.它不消耗消息或执行任务(如预期的那样),但它也没有关闭.

我跑strace了Celery进程,看看幕后发生了什么.这是straceCelery主过程的PID输出

strace -p 27867
Process 27867 attached - interrupt to quit
futex(0xb966a78, FUTEX_WAIT, 0, NULL
Run Code Online (Sandbox Code Playgroud)

以下是我strace在子进程中发现的内容:

strace -p 27874
Process 27874 attached - interrupt to quit
select(4, [3], NULL, NULL, {0, 562000}) = 0 (Timeout)
futex(0x871a808, FUTEX_WAKE, 1)         = 0
select(4, [3], NULL, NULL, {1, 0})      = 0 (Timeout)
futex(0x871a808, FUTEX_WAKE, 1)         = 0
......................................................
Run Code Online (Sandbox Code Playgroud)

我知道我可以向进程发出一个KILL信号来摆脱它们.但是我很想知道究竟是什么阻止了这些进程被关闭,以及是否有可能对它做些什么.

软件堆栈:Python 2.6.2,Celery 2.4.6,CentOS 5.0

更新:CPU使用率降至几乎0%.这些任务非常占用CPU,因此确认当前没有任何任务处于活动状态.

python celery

11
推荐指数
1
解决办法
3652
查看次数

为什么我不能让Python的urlopen()方法在Windows上运行?

为什么这个简单的Python代码不起作用?

import urllib
file = urllib.urlopen('http://www.google.com')
print file.read()
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Traceback (most recent call last):
  File "C:\workspace\GarchUpdate\src\Practice.py", line 26, in <module>
    file = urllib.urlopen('http://www.google.com')
  File "C:\Python26\lib\urllib.py", line 87, in urlopen
    return opener.open(url)
  File "C:\Python26\lib\urllib.py", line 206, in open
    return getattr(self, name)(url)
  File "C:\Python26\lib\urllib.py", line 345, in open_http
    h.endheaders()
  File "C:\Python26\lib\httplib.py", line 892, in endheaders
    self._send_output()
  File "C:\Python26\lib\httplib.py", line 764, in _send_output
    self.send(msg)
  File "C:\Python26\lib\httplib.py", line 723, in send
    self.connect()
  File "C:\Python26\lib\httplib.py", line 704, in connect
    self.timeout)
  File "C:\Python26\lib\socket.py", line 514, in …
Run Code Online (Sandbox Code Playgroud)

python urllib

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

Django Celery:manage.py celeryd返回"Unknown Command"

我正在尝试用Django ORM作为后端设置Celery.

我已经安装了所有必需的软件包(django-celery,djkombu),完成了docs指定的所有内容,运行syncdb来生成必要的DB表.

不过,当我尝试通过manage.py命令启动Celery时,我收到一个"未知命令"错误.

python manage.py celeryd
Unknown command: 'celeryd'
Run Code Online (Sandbox Code Playgroud)

我想我错过了一些关键的细节,但无法弄清楚是什么.

这是我的settings.py文件的样子.任何人都可以指出我做错了什么?

django celery django-celery

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