小编And*_*rew的帖子

Django视图中的本地化日期strftime

我想从django视图发送JSON本地化日期

普通文本翻译

ugettext

没关系

以下代码视图无效:

translation.activate("ru")
print datetime.now().strtime("%B")
Run Code Online (Sandbox Code Playgroud)

输出是"八月",而不是" Август "

我读到了关于python的"locale"模块,但它被命名为线程不安全

如何强制strftime使用django的语言环境?

python django localization

39
推荐指数
1
解决办法
9196
查看次数

芹菜 - 在一台服务器上运行不同的工作人员

我有两种任务:Type1 - 一些高优先级的小任务.Type2 - 优先级较低的繁重任务.

最初我使用默认路由进行简单配置,但没有使用路由密钥.这还不够 - 有时候所有工作人员都在忙于Type2任务,所以Task1被推迟了.我添加了路由键:

CELERY_DEFAULT_QUEUE = "default"
CELERY_QUEUES = {
    "default": {
        "binding_key": "task.#",
    },
    "highs": {
        "binding_key": "starter.#",
    },
}
CELERY_DEFAULT_EXCHANGE = "tasks"
CELERY_DEFAULT_EXCHANGE_TYPE = "topic"
CELERY_DEFAULT_ROUTING_KEY = "task.default"

CELERY_ROUTES = {
        "search.starter.start": {
            "queue": "highs",
            "routing_key": "starter.starter",
        },
}
Run Code Online (Sandbox Code Playgroud)

所以现在我有2个队列 - 具有高优先级和低优先级的任务.

问题是 - 如何使用不同的并发设置启动2 celeryd?

以前celery用于守护进程模式(根据这个),所以只/etc/init.d/celeryd start 需要启动,但现在我必须运行具有不同队列和并发性的2个不同的芹菜.我该怎么做?

django celery

34
推荐指数
3
解决办法
2万
查看次数

MongoDB - 文件大小巨大且不断增长

我有一个使用mongo存储短生活数据的应用程序.超过45分钟的所有数据都将通过以下脚本删除:

oldSearches = [list of old searches]
connection = Connection()
db = connection.searchDB
res = db.results.remove{'search_id':{"$in":oldSearches}})
Run Code Online (Sandbox Code Playgroud)

我查了一下现状 -

>db.results.stats()
{
        "ns" : "searchDB.results",
        "count" : 2865,
        "size" : 1003859656,
        "storageSize" : 29315124464,
        "nindexes" : 1,
        "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

因此,根据这1GB的数据占用29GB的存储空间.数据文件夹看起来像这样(您可能会看到很多文件都很旧 - 最后一次访问的时间是5月):

ls -l /var/lib/mongodb/
total 31506556
-rwxr-xr-x 1 mongodb nogroup          6 2011-06-05 18:28 mongod.lock
-rw------- 1 mongodb nogroup   67108864 2011-05-13 17:45 searchDB.0
-rw------- 1 mongodb nogroup  134217728 2011-05-13 14:45 searchDB.1
-rw------- 1 mongodb nogroup 2146435072 2011-05-20 20:45 searchDB.10
-rw------- …
Run Code Online (Sandbox Code Playgroud)

mongodb

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

Django在原始请求中选择相关

如何制作"手动"select_related模仿以避免不良的数据库命中?

我们有:

class Country:
    name = CharField()
class City:
    country = models.ForeignKey(Country)
    name = models.CharField()

cities = City.objects.raw("select * from city inner join country on city.country_id = country.id where name = 'london'")

#this will hill hit DB
print cities[0].country.name
Run Code Online (Sandbox Code Playgroud)

如何告诉django相关模型已经被提取.

django orm django-models

14
推荐指数
3
解决办法
4187
查看次数

芹菜 - 减少内存消耗

我们有大约300个芹菜进程在Ubuntu 10.4 64位下运行,在空闲时每个进程需要~19mb RES,~174mbV VIRT,因此 - 对于所有进程来说,空闲时大约有6GB RAM.在活动状态 - 过程需要高达100mb的RES和~300mbV的VIRT

每个进程都使用minidom(xml文件<500kb,结构简单)和urllib.

问题是 - 我们如何减少RAM的消耗 - 至少对于闲置工人来说,可能一些芹菜或python选项可能会有所帮助?如何确定哪个部分占用大部分内存?

UPD:那是航班搜索代理商,一个代理商/日期的一名工人.我们有10个代理商,一个用户搜索== 9个日期,因此我们每个用户搜索有10*9个代理商.

是否有可能按需启动celeryd进程以避免闲置工作者(类似于apache上的MaxSpareServers)?

UPD2:代理生命周期是 - 发送HTTP请求,等待响应~10-20秒,解析xml(少于0.02秒),将结果保存到MySQL

python django profiling memory-management celery

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

Django QuerySet 按表达式排序

可能的重复:
django - 按计算字段排序查询集

我如何使用 order_by 像 order_by('field1'*'field2') 例如,我有以不同货币列出价格的商品,因此要订购商品 - 我必须进行货币转换。

class Currency(models.Model):
    code    = models.CharField(max_length=3, primary_key=True) 
    rateToUSD   = models.DecimalField(max_digits=20,decimal_places=10)

class Item(models.Model):
    priceRT     = models.DecimalField(max_digits=15, decimal_places=2, default=0)
    cur     = models.ForeignKey(Currency)
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

Item.objects.all().order_by(F('priceRT')*F('cur__rateToUSD'))
Run Code Online (Sandbox Code Playgroud)

但不幸的是它不起作用,我的注释也失败了。我如何通过 2 个模型字段的值相乘的结果来执行 QuerySet 排序。

django orm django-queryset

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

MySQL和django挂起了巨大的会话删除

我正在使用MySQL作为DB后端运行django站点.最后我在django_session表中有3百万行.他们中的大多数都已过期,因此我想删除它们.但如果我手动运行 delete from django_session where expire_date < "2011-04-18"整个网站似乎被绞死 - 它无法通过浏览器访问.

为什么会出现这种阻塞?怎么避免呢?

python mysql django

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